@mindexec/cli 0.2.260 → 0.2.262
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/package.json +1 -1
- package/server.js +1 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +31 -9
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +1 -58
- package/wwwroot/index.html +3 -3
- package/wwwroot/service-worker-assets.js +4 -4
- package/wwwroot/service-worker.js +1 -1
package/package.json
CHANGED
package/server.js
CHANGED
|
@@ -32,7 +32,7 @@ const { normalizePort, releaseBridgePort } = portGuard;
|
|
|
32
32
|
const app = express();
|
|
33
33
|
const PORT = normalizePort(process.env.BRIDGE_PORT);
|
|
34
34
|
const BRIDGE_ROOT = path.dirname(fileURLToPath(import.meta.url));
|
|
35
|
-
const PACKAGE_INFO = JSON.parse(readFileSync(path.join(BRIDGE_ROOT, 'package.json'), 'utf8'));
|
|
35
|
+
const PACKAGE_INFO = JSON.parse(readFileSync(path.join(BRIDGE_ROOT, 'package.json'), 'utf8').replace(/^\uFEFF/, ''));
|
|
36
36
|
const BRIDGE_PACKAGE_NAME = String(PACKAGE_INFO.name || '@mindexec/cli');
|
|
37
37
|
const BRIDGE_VERSION = String(PACKAGE_INFO.version || '0.1.0');
|
|
38
38
|
const REMOTE_HUB_IDENTITY_FILE_PREFIX = 'remote-hub-identity';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
const DEBUG = false;
|
|
6
6
|
const FPS_DEBUG = false;
|
|
7
7
|
const FRAME_PERF_DEBUG = false;
|
|
8
|
-
const MINDMAP_CORE_BUILD_ID = '20260620-css3d-flat-wheel-
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260620-css3d-flat-wheel-v709';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -507,10 +507,7 @@
|
|
|
507
507
|
}
|
|
508
508
|
|
|
509
509
|
function shouldFreezeWebglSurfaceForZoom(module) {
|
|
510
|
-
return
|
|
511
|
-
module?.isZooming === true &&
|
|
512
|
-
module?._lastWebglRenderedCameraState
|
|
513
|
-
);
|
|
510
|
+
return module?.isZooming === true;
|
|
514
511
|
}
|
|
515
512
|
|
|
516
513
|
function isLocalSnapGridOnlyTheme(module) {
|
|
@@ -529,9 +526,7 @@
|
|
|
529
526
|
return false;
|
|
530
527
|
}
|
|
531
528
|
|
|
532
|
-
if (
|
|
533
|
-
renderDebugFlags.enableFlatCss3dCameraMotion !== false &&
|
|
534
|
-
typeof renderer.renderFlatCamera === 'function') {
|
|
529
|
+
if (canUseFlatCss3dCameraMotion(module, renderer, camera, renderDebugFlags) === true) {
|
|
535
530
|
const usedFlatCamera = renderer.renderFlatCamera(camera, {
|
|
536
531
|
translateBucketPx: CAMERA_MOTION_WEBGL_TRANSFORM_TRANSLATE_BUCKET_PX,
|
|
537
532
|
scaleBucket: CAMERA_MOTION_WEBGL_TRANSFORM_SCALE_BUCKET
|
|
@@ -595,6 +590,26 @@
|
|
|
595
590
|
);
|
|
596
591
|
}
|
|
597
592
|
|
|
593
|
+
function canUseFlatCss3dCameraMotion(module, renderer = module?.cssRenderer, camera = module?.camera, renderDebugFlags = null) {
|
|
594
|
+
if (CSS3D_FLAT_CAMERA_MOTION_ENABLED !== true ||
|
|
595
|
+
!renderer ||
|
|
596
|
+
!camera ||
|
|
597
|
+
camera.isPerspectiveCamera !== true ||
|
|
598
|
+
typeof renderer.renderFlatCamera !== 'function') {
|
|
599
|
+
return false;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
const flags = renderDebugFlags || module?.renderDebugFlags || getRenderDebugFlagsSnapshot();
|
|
603
|
+
if (flags.enableFlatCss3dCameraMotion === false) {
|
|
604
|
+
return false;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
const rotation = camera.rotation || {};
|
|
608
|
+
return Math.abs(Number(rotation.x || 0)) <= 1e-5 &&
|
|
609
|
+
Math.abs(Number(rotation.y || 0)) <= 1e-5 &&
|
|
610
|
+
Math.abs(Number(rotation.z || 0)) <= 1e-5;
|
|
611
|
+
}
|
|
612
|
+
|
|
598
613
|
function syncBusinessAutomationEdgesForCameraNavigation(module, options = {}) {
|
|
599
614
|
const hasActiveEdges = module?._businessAutomationEdgeRenderActive === true;
|
|
600
615
|
if (hasActiveEdges !== true && options.allowDraftRender !== true) {
|
|
@@ -5370,13 +5385,20 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
5370
5385
|
const targetX = Number.isFinite(Number(this.targetX)) ? Number(this.targetX) : currentX;
|
|
5371
5386
|
const targetY = Number.isFinite(Number(this.targetY)) ? Number(this.targetY) : currentY;
|
|
5372
5387
|
const targetZ = Number.isFinite(Number(this.targetZ)) ? Math.max(1, Number(this.targetZ)) : Math.max(1, currentZ);
|
|
5388
|
+
const canUseFlatCss3dWheelCamera =
|
|
5389
|
+
canRenderCss3d === true &&
|
|
5390
|
+
canUseFlatCss3dCameraMotion(this, this.cssRenderer, this.camera, renderDebugFlags) === true;
|
|
5373
5391
|
const deltaSq =
|
|
5374
5392
|
((targetX - currentX) * (targetX - currentX)) +
|
|
5375
5393
|
((targetY - currentY) * (targetY - currentY)) +
|
|
5376
5394
|
((targetZ - currentZ) * (targetZ - currentZ));
|
|
5377
5395
|
|
|
5378
5396
|
this.camera.position.set(targetX, targetY, targetZ);
|
|
5379
|
-
|
|
5397
|
+
if (canUseFlatCss3dWheelCamera === true) {
|
|
5398
|
+
this.camera.matrixWorldNeedsUpdate = true;
|
|
5399
|
+
} else {
|
|
5400
|
+
this.camera.updateMatrixWorld(true);
|
|
5401
|
+
}
|
|
5380
5402
|
this._viewStatePersistAfterMotion = true;
|
|
5381
5403
|
this._viewSyncMotionActive = true;
|
|
5382
5404
|
this._cameraMovingThisFrame = deltaSq > 0.0001;
|
|
@@ -6032,11 +6032,9 @@ window.MindMapInteractions = (function () {
|
|
|
6032
6032
|
if (!wheelBuffers.has(module)) {
|
|
6033
6033
|
wheelBuffers.set(module, {
|
|
6034
6034
|
deltaY: 0, // 누적된 deltaY
|
|
6035
|
-
notchDeltaY: 0, // 일반 마우스 휠용 계단식 zoom 누적값
|
|
6036
6035
|
lastClientX: 0, // 마지막 마우스 X 위치
|
|
6037
6036
|
lastClientY: 0, // 마지막 마우스 Y 위치
|
|
6038
6037
|
pending: false, // rAF 대기 중 여부
|
|
6039
|
-
notchPending: false, // 계단식 zoom rAF 대기 중 여부
|
|
6040
6038
|
frameId: null, // rAF ID
|
|
6041
6039
|
eventCount: 0
|
|
6042
6040
|
});
|
|
@@ -6079,9 +6077,6 @@ window.MindMapInteractions = (function () {
|
|
|
6079
6077
|
const WHEEL_ZOOM_MAX_STEP = 0.42;
|
|
6080
6078
|
const WHEEL_ZOOM_TRACKPAD_DELTA = 24;
|
|
6081
6079
|
const WHEEL_ZOOM_TRACKPAD_BOOST = 1.3;
|
|
6082
|
-
const WHEEL_ZOOM_NOTCH_DELTA = 90;
|
|
6083
|
-
const WHEEL_ZOOM_NOTCH_STEP = 0.24;
|
|
6084
|
-
const WHEEL_ZOOM_MAX_NOTCHES_PER_FRAME = 2;
|
|
6085
6080
|
const TRACKPAD_PAN_SENSITIVITY = 0.0014;
|
|
6086
6081
|
const TRACKPAD_PIXEL_DELTA_MAX = 32;
|
|
6087
6082
|
const GESTURE_SCALE_EPSILON = 0.001;
|
|
@@ -6337,53 +6332,6 @@ window.MindMapInteractions = (function () {
|
|
|
6337
6332
|
});
|
|
6338
6333
|
}
|
|
6339
6334
|
|
|
6340
|
-
function flushSteppedWheelZoomBuffer(module, wheelBuffer) {
|
|
6341
|
-
const nextAbsDelta = Math.abs(Number(wheelBuffer?.notchDeltaY || 0));
|
|
6342
|
-
if (nextAbsDelta < WHEEL_ZOOM_NOTCH_DELTA) {
|
|
6343
|
-
return;
|
|
6344
|
-
}
|
|
6345
|
-
|
|
6346
|
-
const direction = Math.sign(wheelBuffer.notchDeltaY);
|
|
6347
|
-
const notchCount = Math.min(
|
|
6348
|
-
WHEEL_ZOOM_MAX_NOTCHES_PER_FRAME,
|
|
6349
|
-
Math.max(1, Math.floor(nextAbsDelta / WHEEL_ZOOM_NOTCH_DELTA))
|
|
6350
|
-
);
|
|
6351
|
-
wheelBuffer.notchDeltaY -= direction * notchCount * WHEEL_ZOOM_NOTCH_DELTA;
|
|
6352
|
-
|
|
6353
|
-
performCameraZoomBuffered(
|
|
6354
|
-
module,
|
|
6355
|
-
direction * notchCount * WHEEL_ZOOM_NOTCH_DELTA,
|
|
6356
|
-
wheelBuffer.lastClientX,
|
|
6357
|
-
wheelBuffer.lastClientY,
|
|
6358
|
-
{
|
|
6359
|
-
fixedZoomStep: direction * notchCount * WHEEL_ZOOM_NOTCH_STEP,
|
|
6360
|
-
coalescedWheelEvents: notchCount
|
|
6361
|
-
}
|
|
6362
|
-
);
|
|
6363
|
-
|
|
6364
|
-
if (Math.abs(Number(wheelBuffer.notchDeltaY || 0)) >= WHEEL_ZOOM_NOTCH_DELTA) {
|
|
6365
|
-
scheduleWheelZoomFrame(module, wheelBuffer, () => flushSteppedWheelZoomBuffer(module, wheelBuffer));
|
|
6366
|
-
}
|
|
6367
|
-
}
|
|
6368
|
-
|
|
6369
|
-
function bufferSteppedWheelZoomEvent(module, e, analysis = null) {
|
|
6370
|
-
const wheelBuffer = getWheelBuffer(module);
|
|
6371
|
-
const normalizedDeltaY = Number((analysis || getWheelEventAnalysis(module, e)).deltaY || 0);
|
|
6372
|
-
const notchDeltaY = e?.deltaMode === 0
|
|
6373
|
-
? normalizedDeltaY
|
|
6374
|
-
: Math.sign(normalizedDeltaY) * WHEEL_ZOOM_NOTCH_DELTA;
|
|
6375
|
-
wheelBuffer.notchDeltaY += notchDeltaY;
|
|
6376
|
-
wheelBuffer.lastClientX = e.clientX;
|
|
6377
|
-
wheelBuffer.lastClientY = e.clientY;
|
|
6378
|
-
|
|
6379
|
-
const absDelta = Math.abs(wheelBuffer.notchDeltaY);
|
|
6380
|
-
if (absDelta < WHEEL_ZOOM_NOTCH_DELTA) {
|
|
6381
|
-
return;
|
|
6382
|
-
}
|
|
6383
|
-
|
|
6384
|
-
scheduleWheelZoomFrame(module, wheelBuffer, () => flushSteppedWheelZoomBuffer(module, wheelBuffer));
|
|
6385
|
-
}
|
|
6386
|
-
|
|
6387
6335
|
/**
|
|
6388
6336
|
* 버퍼된 휠 데이터로 카메라 줌 수행
|
|
6389
6337
|
* - 기존 performCameraZoom과 동일하지만 event 객체 대신 누적된 값 사용
|
|
@@ -6537,12 +6485,7 @@ window.MindMapInteractions = (function () {
|
|
|
6537
6485
|
e.preventDefault();
|
|
6538
6486
|
e.stopPropagation();
|
|
6539
6487
|
const wheelAnalysis = analysis || getWheelEventAnalysis(module, e);
|
|
6540
|
-
|
|
6541
|
-
bufferWheelEvent(module, e, wheelAnalysis);
|
|
6542
|
-
return;
|
|
6543
|
-
}
|
|
6544
|
-
|
|
6545
|
-
bufferSteppedWheelZoomEvent(module, e, wheelAnalysis);
|
|
6488
|
+
bufferWheelEvent(module, e, wheelAnalysis);
|
|
6546
6489
|
}
|
|
6547
6490
|
|
|
6548
6491
|
function isWheelZoomControlSwapEnabled(module) {
|
package/wwwroot/index.html
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
<title>MindExec | Business Execution OS for solo builders</title>
|
|
8
8
|
<meta name="description" content="MindExec is an AI business execution OS for solo builders who want to turn notes, research, assets, and repeatable execution Skills into revenue-producing work." />
|
|
9
9
|
<base href="/" />
|
|
10
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-css3d-flat-wheel-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-flat-wheel-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-css3d-flat-wheel-v710" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-flat-wheel-v710" />
|
|
12
12
|
<!-- ?�▼??Font Awesome (local) ?�▼??-->
|
|
13
13
|
<link rel="stylesheet" href="_content/MindExecution.Shared/lib/font-awesome/css/all.min.css" />
|
|
14
14
|
<!-- ?�▲??-->
|
|
@@ -579,7 +579,7 @@
|
|
|
579
579
|
}
|
|
580
580
|
|
|
581
581
|
const base = '_content/MindExecution.Shared/js/';
|
|
582
|
-
const scriptVersion = '20260620-css3d-flat-wheel-
|
|
582
|
+
const scriptVersion = '20260620-css3d-flat-wheel-v710';
|
|
583
583
|
const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
|
|
584
584
|
console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
|
|
585
585
|
const criticalScripts = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
self.assetsManifest = {
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "i5VgbkGW",
|
|
3
3
|
"assets": [
|
|
4
4
|
{
|
|
5
5
|
"hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"url": "_content/MindExecution.Shared/js/marked.min.js"
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
|
-
"hash": "sha256-
|
|
81
|
+
"hash": "sha256-zA1z44n8LRbB570BkhjJ7VS8fEWJ72lUn+PST+8pR0M=",
|
|
82
82
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"url": "_content/MindExecution.Shared/js/mind-map-glow-shader.js"
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
|
-
"hash": "sha256-
|
|
109
|
+
"hash": "sha256-o5V0YYMPabf5eB2Z/rGiGB4Ggv3HEaLsCXSq0xY4dPQ=",
|
|
110
110
|
"url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
|
|
111
111
|
},
|
|
112
112
|
{
|
|
@@ -834,7 +834,7 @@
|
|
|
834
834
|
"url": "image-manifest.json"
|
|
835
835
|
},
|
|
836
836
|
{
|
|
837
|
-
"hash": "sha256-
|
|
837
|
+
"hash": "sha256-jdNq8XWpVAdXAmN23SQljQN3nWt1r1SX2Cfu+te7SmY=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|