@mindexec/cli 0.2.453 → 0.2.454
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/electron/main.cjs +12 -0
- package/electron/source-smoke.mjs +15 -0
- package/package.json +2 -2
- package/remote-fast/osx-arm64/mindexec-remote-fast.dll +0 -0
- package/remote-fast/osx-x64/mindexec-remote-fast.dll +0 -0
- package/remote-fast/win-x64/mindexec-remote-fast.dll +0 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +210 -244
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +77 -103
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +5 -7
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-logic-workers.js +9 -3
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-render-plan.js +294 -12
- package/wwwroot/_framework/{MindExecution.Core.9h7x2mjn0w.dll → MindExecution.Core.sxhdhda5s2.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Kernel.8te3ay3qs6.dll → MindExecution.Kernel.j8gyjmvupu.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Admin.imt43kggvu.dll → MindExecution.Plugins.Admin.91tk6u6ry5.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Business.26yozgyvan.dll → MindExecution.Plugins.Business.b7h6v1eygj.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Concept.k7fd1qvmfx.dll → MindExecution.Plugins.Concept.i2zgmkmpwv.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Directory.88ng22x3y0.dll → MindExecution.Plugins.Directory.r6is6647n2.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.ll20yqlc09.dll → MindExecution.Plugins.PlanMaster.s95n9skblk.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.YouTube.gqu5xngvav.dll → MindExecution.Plugins.YouTube.33l2m0y23q.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Shared.6ivt1fatt3.dll → MindExecution.Shared.hvehzbzkt7.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Web.7tki7xqpt0.dll → MindExecution.Web.krui41i71h.dll} +0 -0
- package/wwwroot/_framework/blazor.boot.json +21 -21
- package/wwwroot/app-icon-1024.png +0 -0
- package/wwwroot/apple-touch-icon.png +0 -0
- package/wwwroot/favicon-32x32.png +0 -0
- package/wwwroot/favicon.ico +0 -0
- package/wwwroot/icon-192.png +0 -0
- package/wwwroot/icon-512.png +0 -0
- package/wwwroot/index.html +8 -4
- package/wwwroot/manifest.webmanifest +21 -19
- package/wwwroot/mindexec-favicon-v2.png +0 -0
- package/wwwroot/service-worker-assets.js +51 -31
- package/wwwroot/service-worker.js +1 -1
package/electron/main.cjs
CHANGED
|
@@ -11,6 +11,7 @@ const DEFAULT_BRIDGE_PORT = 5147;
|
|
|
11
11
|
const DEFAULT_REMOTE_HUB_PORT = 5198;
|
|
12
12
|
const STARTUP_TIMEOUT_MS = 45_000;
|
|
13
13
|
const HEALTH_POLL_MS = 250;
|
|
14
|
+
const DESKTOP_APP_ID = 'com.mindexec.desktop';
|
|
14
15
|
|
|
15
16
|
let mainWindow = null;
|
|
16
17
|
let bridgeChild = null;
|
|
@@ -20,6 +21,11 @@ let activeBridgePort = DEFAULT_BRIDGE_PORT;
|
|
|
20
21
|
let activeRemoteHubPort = DEFAULT_REMOTE_HUB_PORT;
|
|
21
22
|
let activeWorkspace = '';
|
|
22
23
|
|
|
24
|
+
function resolveDesktopIconPath() {
|
|
25
|
+
const iconPath = path.resolve(__dirname, '..', 'wwwroot', 'icon-512.png');
|
|
26
|
+
return fs.existsSync(iconPath) ? iconPath : undefined;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
function parsePort(value) {
|
|
24
30
|
const parsed = Number.parseInt(String(value ?? ''), 10);
|
|
25
31
|
return Number.isInteger(parsed) && parsed > 0 && parsed <= 65_535 ? parsed : 0;
|
|
@@ -199,6 +205,7 @@ function createMainWindow() {
|
|
|
199
205
|
autoHideMenuBar: true,
|
|
200
206
|
backgroundColor: '#0b1020',
|
|
201
207
|
title: 'MindExec',
|
|
208
|
+
icon: resolveDesktopIconPath(),
|
|
202
209
|
webPreferences: {
|
|
203
210
|
contextIsolation: true,
|
|
204
211
|
nodeIntegration: false,
|
|
@@ -211,6 +218,7 @@ function createMainWindow() {
|
|
|
211
218
|
action: 'allow',
|
|
212
219
|
overrideBrowserWindowOptions: {
|
|
213
220
|
autoHideMenuBar: true,
|
|
221
|
+
icon: resolveDesktopIconPath(),
|
|
214
222
|
webPreferences: {
|
|
215
223
|
contextIsolation: true,
|
|
216
224
|
nodeIntegration: false,
|
|
@@ -299,6 +307,10 @@ async function launchDesktop() {
|
|
|
299
307
|
}
|
|
300
308
|
}
|
|
301
309
|
|
|
310
|
+
if (process.platform === 'win32') {
|
|
311
|
+
app.setAppUserModelId(DESKTOP_APP_ID);
|
|
312
|
+
}
|
|
313
|
+
|
|
302
314
|
const hasSingleInstanceLock = app.requestSingleInstanceLock();
|
|
303
315
|
if (!hasSingleInstanceLock) {
|
|
304
316
|
app.quit();
|
|
@@ -2,6 +2,7 @@ import assert from 'node:assert/strict';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import sharp from 'sharp';
|
|
5
6
|
|
|
6
7
|
const electronDirectory = path.dirname(fileURLToPath(import.meta.url));
|
|
7
8
|
const packageRoot = path.resolve(electronDirectory, '..');
|
|
@@ -16,6 +17,17 @@ assert.ok(packageJson.files?.includes('electron/'), 'The npm package must includ
|
|
|
16
17
|
assert.match(packageJson.scripts?.['desktop:build:win'] || '', /electron-builder/, 'Windows build script is missing.');
|
|
17
18
|
assert.match(packageJson.scripts?.['test:desktop:win'] || '', /windows-package-smoke/, 'Packaged smoke test is missing.');
|
|
18
19
|
|
|
20
|
+
assert.equal(
|
|
21
|
+
packageJson.build?.win?.icon,
|
|
22
|
+
'../MindExecution.Web/wwwroot/app-icon-1024.png',
|
|
23
|
+
'Electron must build from the canonical 1024px MindExec icon.'
|
|
24
|
+
);
|
|
25
|
+
const builderIconPath = path.resolve(packageRoot, packageJson.build.win.icon);
|
|
26
|
+
assert.ok(fs.existsSync(builderIconPath), `Electron builder icon is missing: ${builderIconPath}`);
|
|
27
|
+
const builderIconMetadata = await sharp(builderIconPath).metadata();
|
|
28
|
+
assert.equal(builderIconMetadata.width, 1024, 'Electron builder icon must be 1024px wide.');
|
|
29
|
+
assert.equal(builderIconMetadata.height, 1024, 'Electron builder icon must be 1024px tall.');
|
|
30
|
+
|
|
19
31
|
const targets = packageJson.build?.win?.target || [];
|
|
20
32
|
assert.ok(targets.some((target) => target.target === 'nsis'), 'NSIS target is required.');
|
|
21
33
|
assert.ok(targets.some((target) => target.target === 'portable'), 'Portable target is required.');
|
|
@@ -29,11 +41,14 @@ assert.match(mainSource, /wwwroot.*index\.html/s, 'Electron must verify its bund
|
|
|
29
41
|
assert.match(mainSource, /resolveDedicatedPort/, 'Electron must allocate dedicated local ports.');
|
|
30
42
|
assert.doesNotMatch(mainSource, /adopted|probeBridge/, 'Electron must not adopt an external LocalBridge.');
|
|
31
43
|
assert.match(mainSource, /MINDEXEC_DESKTOP_SMOKE_RESULT/, 'Packaged runtime smoke contract is missing.');
|
|
44
|
+
assert.match(mainSource, /icon:\s*resolveDesktopIconPath\(\)/, 'Electron windows must use the packaged MindExec icon.');
|
|
45
|
+
assert.match(mainSource, /app\.setAppUserModelId\(DESKTOP_APP_ID\)/, 'Windows taskbar identity must use the stable app id.');
|
|
32
46
|
|
|
33
47
|
console.log(JSON.stringify({
|
|
34
48
|
ok: true,
|
|
35
49
|
appId: packageJson.build.appId,
|
|
36
50
|
version: packageJson.version,
|
|
37
51
|
runtimeMode: 'bundled',
|
|
52
|
+
icon: packageJson.build.win.icon,
|
|
38
53
|
targets: targets.map((target) => `${target.target}:${target.arch.join(',')}`)
|
|
39
54
|
}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mindexec/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.454",
|
|
4
4
|
"description": "MindExec local runtime and bridge CLI",
|
|
5
5
|
"main": "server.js",
|
|
6
6
|
"type": "module",
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
"node_modules/**/*"
|
|
119
119
|
],
|
|
120
120
|
"win": {
|
|
121
|
-
"icon": "../MindExecution.Web/wwwroot/icon-
|
|
121
|
+
"icon": "../MindExecution.Web/wwwroot/app-icon-1024.png",
|
|
122
122
|
"executableName": "MindExec",
|
|
123
123
|
"target": [
|
|
124
124
|
{
|
|
Binary file
|
|
Binary file
|
|
Binary file
|