@mindexec/cli 0.2.452 → 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/background-themes.js +1 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +211 -245
- 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 +52 -32
- package/wwwroot/service-worker.js +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
(function () {
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
const BUILD_ID = '
|
|
4
|
+
const BUILD_ID = '20260728-camera-render-policy-v43';
|
|
5
5
|
const FRAME_SAMPLE_LIMIT = 240;
|
|
6
6
|
const INITIAL_LINE_TEXTURE_ROWS = 1024;
|
|
7
7
|
const GPU_WARM_RETRY_DELAY_MS = 120;
|
|
@@ -18,6 +18,147 @@
|
|
|
18
18
|
'lodCleanup', 'lodNodeScan', 'lodResidentApply', 'lodLinePatch', 'lodImageInstances',
|
|
19
19
|
'lodPositionPatch', 'lodFallbacks', 'lodOther'
|
|
20
20
|
];
|
|
21
|
+
const CAMERA_ONLY_WEBGL_BLOCKERS = Object.freeze({
|
|
22
|
+
NotCameraOnly: 1 << 0,
|
|
23
|
+
Css3dCameraPathUnavailable: 1 << 1,
|
|
24
|
+
WebglDisabled: 1 << 2,
|
|
25
|
+
BoardLoading: 1 << 3,
|
|
26
|
+
ResidentLod: 1 << 4,
|
|
27
|
+
NonCameraUpdate: 1 << 5,
|
|
28
|
+
ThemeAnimation: 1 << 6,
|
|
29
|
+
WebglTheme: 1 << 7,
|
|
30
|
+
CssCoverageIncomplete: 1 << 8,
|
|
31
|
+
FullResHandoff: 1 << 9,
|
|
32
|
+
ResidentMeshVisible: 1 << 10,
|
|
33
|
+
ImageVisual: 1 << 11,
|
|
34
|
+
AnimatedImageStatus: 1 << 12,
|
|
35
|
+
CursorVisual: 1 << 13,
|
|
36
|
+
DebugVisual: 1 << 14,
|
|
37
|
+
FullResGlVisual: 1 << 15
|
|
38
|
+
});
|
|
39
|
+
const CAMERA_ONLY_WEBGL_BLOCKER_NAMES = Object.freeze([
|
|
40
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.NotCameraOnly, 'not-camera-only'],
|
|
41
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.Css3dCameraPathUnavailable, 'css3d-camera-path-unavailable'],
|
|
42
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.WebglDisabled, 'webgl-disabled'],
|
|
43
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.BoardLoading, 'board-loading'],
|
|
44
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.ResidentLod, 'resident-lod'],
|
|
45
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.NonCameraUpdate, 'non-camera-update'],
|
|
46
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.ThemeAnimation, 'theme-animation'],
|
|
47
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.WebglTheme, 'webgl-theme'],
|
|
48
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.CssCoverageIncomplete, 'css-coverage-incomplete'],
|
|
49
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.FullResHandoff, 'fullres-handoff'],
|
|
50
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.ResidentMeshVisible, 'resident-mesh-visible'],
|
|
51
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.ImageVisual, 'image-visual'],
|
|
52
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.AnimatedImageStatus, 'animated-image-status'],
|
|
53
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.CursorVisual, 'cursor-visual'],
|
|
54
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.DebugVisual, 'debug-visual'],
|
|
55
|
+
[CAMERA_ONLY_WEBGL_BLOCKERS.FullResGlVisual, 'fullres-gl-visual']
|
|
56
|
+
]);
|
|
57
|
+
|
|
58
|
+
function isRendererDprInteractionActive(module, frameState = null) {
|
|
59
|
+
return !!(
|
|
60
|
+
frameState?.isCameraMoving === true ||
|
|
61
|
+
module?.isZooming === true ||
|
|
62
|
+
module?.isPanning === true ||
|
|
63
|
+
module?._cameraMovingThisFrame === true ||
|
|
64
|
+
module?._panSmoothingActive === true ||
|
|
65
|
+
module?._wheelZoomBurstActive === true ||
|
|
66
|
+
module?.isDraggingNode === true ||
|
|
67
|
+
module?.isDraggingMultipleNodes === true ||
|
|
68
|
+
module?.isResizing === true ||
|
|
69
|
+
module?.isWindowResizing === true
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function getCameraOnlyWebglBlockerMask(module, frameState = null) {
|
|
74
|
+
const renderer = module?.lodRenderer || null;
|
|
75
|
+
let blockers = 0;
|
|
76
|
+
if (frameState?.isCameraNavigationOnlyInteractiveFrame !== true) {
|
|
77
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.NotCameraOnly;
|
|
78
|
+
}
|
|
79
|
+
if (frameState?.canUseCss3dCameraFastPath !== true) {
|
|
80
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.Css3dCameraPathUnavailable;
|
|
81
|
+
}
|
|
82
|
+
if (frameState?.isWebglRenderEnabled !== true) {
|
|
83
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.WebglDisabled;
|
|
84
|
+
}
|
|
85
|
+
if (frameState?.isBoardLoading === true) {
|
|
86
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.BoardLoading;
|
|
87
|
+
}
|
|
88
|
+
if (frameState?.isInLodMode === true || renderer?.isInLODMode !== false) {
|
|
89
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.ResidentLod;
|
|
90
|
+
}
|
|
91
|
+
if (frameState?.hasNonCameraNavigationForcedUpdate === true) {
|
|
92
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.NonCameraUpdate;
|
|
93
|
+
}
|
|
94
|
+
if (frameState?.themeAnimatedThisFrame === true || module?._forceThemeAnimationFrame === true) {
|
|
95
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.ThemeAnimation;
|
|
96
|
+
}
|
|
97
|
+
if (module?.currentThemeObject?.userData?.localSnapGrid !== true) {
|
|
98
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.WebglTheme;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const visibleCount = Number(module?._visibleIds?.size || 0);
|
|
102
|
+
const nearCssVisibleCount = Number(renderer?._nearCssVisibleIds?.size || 0);
|
|
103
|
+
const activeFullResCssCount = Number(renderer?._activeFullResCssNodeIds?.size || 0);
|
|
104
|
+
const pendingFullResCssCount = Number(renderer?._fullResCssPendingReadyIds?.size || 0);
|
|
105
|
+
const hasCompleteCssCoverage =
|
|
106
|
+
nearCssVisibleCount === visibleCount &&
|
|
107
|
+
activeFullResCssCount === visibleCount &&
|
|
108
|
+
pendingFullResCssCount === 0 &&
|
|
109
|
+
(visibleCount === 0 || !!renderer?._lastNearCssNoWorkKey);
|
|
110
|
+
if (!hasCompleteCssCoverage) {
|
|
111
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.CssCoverageIncomplete;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// The full-res motion optimizer owns this cached proof: only CSS-backed,
|
|
115
|
+
// unselected text-like nodes enter the set after their whole GL group is
|
|
116
|
+
// hidden. Images, media, selected nodes, and open agent consoles remain
|
|
117
|
+
// outside it and therefore fail closed without a scene traversal here.
|
|
118
|
+
const motionHiddenGlCount = Number(renderer?._fullResMotionHiddenGlIds?.size || 0);
|
|
119
|
+
if (motionHiddenGlCount !== visibleCount) {
|
|
120
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.FullResGlVisual;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const fullResHandoffActive =
|
|
124
|
+
renderer?._fullResHandoffActive === true ||
|
|
125
|
+
renderer?._hasCss3dQueueItems?.() === true ||
|
|
126
|
+
renderer?._css3dProcessing === true;
|
|
127
|
+
if (fullResHandoffActive) {
|
|
128
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.FullResHandoff;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
const residentMeshVisible =
|
|
132
|
+
renderer?.instancedHaloMesh?.visible === true ||
|
|
133
|
+
renderer?.instancedMesh?.visible === true ||
|
|
134
|
+
renderer?.instancedBorderLineMesh?.visible === true ||
|
|
135
|
+
renderer?.instancedLineMesh?.visible === true ||
|
|
136
|
+
renderer?.instancedConsoleMesh?.visible === true ||
|
|
137
|
+
renderer?.instancedImageMesh?.visible === true;
|
|
138
|
+
if (residentMeshVisible) {
|
|
139
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.ResidentMeshVisible;
|
|
140
|
+
}
|
|
141
|
+
if (Number(renderer?._fullResImageVisualIds?.size || 0) > 0) {
|
|
142
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.ImageVisual;
|
|
143
|
+
}
|
|
144
|
+
if (Number(module?._activeImageStatusTextures?.size || 0) > 0) {
|
|
145
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.AnimatedImageStatus;
|
|
146
|
+
}
|
|
147
|
+
if (module?.cursorMesh?.visible === true) {
|
|
148
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.CursorVisual;
|
|
149
|
+
}
|
|
150
|
+
if (Number(module?.debugGroup?.children?.length || 0) > 0) {
|
|
151
|
+
blockers |= CAMERA_ONLY_WEBGL_BLOCKERS.DebugVisual;
|
|
152
|
+
}
|
|
153
|
+
return blockers;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
function getCameraOnlyWebglBlockerNames(mask) {
|
|
157
|
+
const normalizedMask = Number(mask || 0);
|
|
158
|
+
return CAMERA_ONLY_WEBGL_BLOCKER_NAMES
|
|
159
|
+
.filter(([flag]) => (normalizedMask & flag) !== 0)
|
|
160
|
+
.map(([, name]) => name);
|
|
161
|
+
}
|
|
21
162
|
|
|
22
163
|
function configureImageAtlasTexture(texture, THREE) {
|
|
23
164
|
if (!texture || !THREE) return texture;
|
|
@@ -410,11 +551,110 @@
|
|
|
410
551
|
return true;
|
|
411
552
|
}
|
|
412
553
|
|
|
413
|
-
function
|
|
554
|
+
function invalidateAnimatedGifCssFallbackCandidateCache(renderer) {
|
|
555
|
+
if (!renderer) return;
|
|
556
|
+
renderer._animatedGifFallbackCandidateCacheValid = false;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
function invalidateActiveCssMediaFallbackCountCache(renderer) {
|
|
560
|
+
if (!renderer) return;
|
|
561
|
+
renderer._activeCssMediaFallbackCountCacheValid = false;
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
function markLodImageCssFallbacksChanged(renderer) {
|
|
565
|
+
if (!renderer) return;
|
|
566
|
+
renderer._lodImageCssFallbackRevision =
|
|
567
|
+
Number(renderer._lodImageCssFallbackRevision || 0) + 1;
|
|
568
|
+
invalidateAnimatedGifCssFallbackCandidateCache(renderer);
|
|
569
|
+
invalidateActiveCssMediaFallbackCountCache(renderer);
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
function createTrackedLodImageCssFallbackSet(renderer) {
|
|
573
|
+
return new class extends Set {
|
|
574
|
+
add(value) {
|
|
575
|
+
if (!this.has(value)) {
|
|
576
|
+
super.add(value);
|
|
577
|
+
markLodImageCssFallbacksChanged(renderer);
|
|
578
|
+
}
|
|
579
|
+
return this;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
delete(value) {
|
|
583
|
+
const deleted = super.delete(value);
|
|
584
|
+
if (deleted) markLodImageCssFallbacksChanged(renderer);
|
|
585
|
+
return deleted;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
clear() {
|
|
589
|
+
if (this.size <= 0) return;
|
|
590
|
+
super.clear();
|
|
591
|
+
markLodImageCssFallbacksChanged(renderer);
|
|
592
|
+
}
|
|
593
|
+
}();
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
function getActiveCssMediaFallbackCountCached(renderer, module) {
|
|
597
|
+
if (!renderer) return 0;
|
|
598
|
+
const nodeObjectsById = module?.nodeObjectsById || renderer?._module?.nodeObjectsById || null;
|
|
599
|
+
const fallbackRevision = Number(renderer?._lodImageCssFallbackRevision || 0);
|
|
600
|
+
const fallbackCount = Number(renderer?._lodImageCssFallbackNodeIds?.size || 0);
|
|
601
|
+
if (fallbackCount <= 0) {
|
|
602
|
+
renderer._activeCssMediaFallbackCountCacheNodeMap = nodeObjectsById;
|
|
603
|
+
renderer._activeCssMediaFallbackCountCacheRevision = fallbackRevision;
|
|
604
|
+
renderer._activeCssMediaFallbackCountCacheFallbackCount = 0;
|
|
605
|
+
renderer._activeCssMediaFallbackCountCacheValue = 0;
|
|
606
|
+
renderer._activeCssMediaFallbackCountCacheValid = true;
|
|
607
|
+
return 0;
|
|
608
|
+
}
|
|
609
|
+
if (renderer._activeCssMediaFallbackCountCacheValid === true &&
|
|
610
|
+
renderer._activeCssMediaFallbackCountCacheNodeMap === nodeObjectsById &&
|
|
611
|
+
Number(renderer._activeCssMediaFallbackCountCacheRevision || 0) === fallbackRevision &&
|
|
612
|
+
Number(renderer._activeCssMediaFallbackCountCacheFallbackCount || 0) === fallbackCount) {
|
|
613
|
+
renderer._activeCssMediaFallbackCountCacheHitCount =
|
|
614
|
+
Number(renderer._activeCssMediaFallbackCountCacheHitCount || 0) + 1;
|
|
615
|
+
return Number(renderer._activeCssMediaFallbackCountCacheValue || 0);
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
const activeFallbackCount =
|
|
619
|
+
Number(renderer._getActiveCssMediaLodFallbackCount?.(module) || 0);
|
|
620
|
+
renderer._activeCssMediaFallbackCountScanCount =
|
|
621
|
+
Number(renderer._activeCssMediaFallbackCountScanCount || 0) + 1;
|
|
622
|
+
renderer._activeCssMediaFallbackCountCacheNodeMap = nodeObjectsById;
|
|
623
|
+
renderer._activeCssMediaFallbackCountCacheRevision = fallbackRevision;
|
|
624
|
+
renderer._activeCssMediaFallbackCountCacheFallbackCount = fallbackCount;
|
|
625
|
+
renderer._activeCssMediaFallbackCountCacheValue = activeFallbackCount;
|
|
626
|
+
renderer._activeCssMediaFallbackCountCacheValid = true;
|
|
627
|
+
return activeFallbackCount;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
function hasAnimatedGifCssFallbackCandidates(renderer, module, isAnimatedGifModel, selectionKey = '') {
|
|
414
631
|
const nodeObjectsById = module?.nodeObjectsById || renderer?._module?.nodeObjectsById || null;
|
|
415
632
|
if (!nodeObjectsById || typeof isAnimatedGifModel !== 'function') return false;
|
|
633
|
+
const visibilityVersion = Number(module?._visibilityVersion || 0);
|
|
634
|
+
const fallbackRevision = Number(renderer?._lodImageCssFallbackRevision || 0);
|
|
635
|
+
const fallbackCount = Number(renderer?._lodImageCssFallbackNodeIds?.size || 0);
|
|
636
|
+
const residentDirtySerial = Number(renderer?._instancesDirtySerial || 0);
|
|
637
|
+
const normalizedSelectionKey = String(selectionKey || '');
|
|
638
|
+
if (renderer?._animatedGifFallbackCandidateCacheValid === true &&
|
|
639
|
+
renderer._animatedGifFallbackCandidateNodeMap === nodeObjectsById &&
|
|
640
|
+
Number(renderer._animatedGifFallbackCandidateVisibilityVersion || 0) === visibilityVersion &&
|
|
641
|
+
Number(renderer._animatedGifFallbackCandidateFallbackRevision || 0) === fallbackRevision &&
|
|
642
|
+
Number(renderer._animatedGifFallbackCandidateFallbackCount || 0) === fallbackCount &&
|
|
643
|
+
Number(renderer._animatedGifFallbackCandidateResidentDirtySerial || 0) === residentDirtySerial &&
|
|
644
|
+
String(renderer._animatedGifFallbackCandidateSelectionKey || '') === normalizedSelectionKey) {
|
|
645
|
+
renderer._animatedGifFallbackCandidateCacheHitCount =
|
|
646
|
+
Number(renderer._animatedGifFallbackCandidateCacheHitCount || 0) + 1;
|
|
647
|
+
return renderer._animatedGifFallbackCandidateCacheValue === true;
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
renderer._animatedGifFallbackCandidateScanCount =
|
|
651
|
+
Number(renderer._animatedGifFallbackCandidateScanCount || 0) + 1;
|
|
416
652
|
const isGifId = (value) => {
|
|
417
653
|
const nodeId = String(value || '').trim();
|
|
654
|
+
if (nodeId) {
|
|
655
|
+
renderer._animatedGifFallbackCandidateNodeVisitCount =
|
|
656
|
+
Number(renderer._animatedGifFallbackCandidateNodeVisitCount || 0) + 1;
|
|
657
|
+
}
|
|
418
658
|
return !!nodeId && isAnimatedGifModel(nodeObjectsById.get(nodeId)?.model) === true;
|
|
419
659
|
};
|
|
420
660
|
const scan = (ids) => {
|
|
@@ -423,10 +663,21 @@
|
|
|
423
663
|
return false;
|
|
424
664
|
};
|
|
425
665
|
const visibleIds = module?._visibleIds || null;
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
666
|
+
const result =
|
|
667
|
+
scan(visibleIds) ||
|
|
668
|
+
(module?._prevVisibleIds !== visibleIds && scan(module?._prevVisibleIds)) ||
|
|
669
|
+
isGifId(module?.selectedNodeIdJs) ||
|
|
670
|
+
scan(module?.multiSelectedNodeIds) ||
|
|
671
|
+
scan(renderer?._lodImageCssFallbackNodeIds);
|
|
672
|
+
renderer._animatedGifFallbackCandidateNodeMap = nodeObjectsById;
|
|
673
|
+
renderer._animatedGifFallbackCandidateVisibilityVersion = visibilityVersion;
|
|
674
|
+
renderer._animatedGifFallbackCandidateFallbackRevision = fallbackRevision;
|
|
675
|
+
renderer._animatedGifFallbackCandidateFallbackCount = fallbackCount;
|
|
676
|
+
renderer._animatedGifFallbackCandidateResidentDirtySerial = residentDirtySerial;
|
|
677
|
+
renderer._animatedGifFallbackCandidateSelectionKey = normalizedSelectionKey;
|
|
678
|
+
renderer._animatedGifFallbackCandidateCacheValue = result === true;
|
|
679
|
+
renderer._animatedGifFallbackCandidateCacheValid = true;
|
|
680
|
+
return result === true;
|
|
430
681
|
}
|
|
431
682
|
|
|
432
683
|
function hasResidentDirtyWork(renderer, camera, module, resolveLodBand, buildSelectionKey, isAnimatedGifModel) {
|
|
@@ -434,7 +685,8 @@
|
|
|
434
685
|
const lodBand = camera && typeof resolveLodBand === 'function'
|
|
435
686
|
? resolveLodBand(Number(camera.position?.z || 0))
|
|
436
687
|
: renderer._currentLodBand;
|
|
437
|
-
|
|
688
|
+
const hasTypedResidentDirtyWork =
|
|
689
|
+
renderer._instancesDirty === true || renderer._imageInstancesDirty === true ||
|
|
438
690
|
renderer._positionsOnlyDirty === true || renderer._isNodeArrayDirty === true ||
|
|
439
691
|
Number(renderer._dirtyPositionIds?.size || 0) > 0 || Number(renderer._pendingSelectionRefreshIds?.size || 0) > 0 ||
|
|
440
692
|
renderer._imageAtlasRebuildPending === true || Number(renderer._imageAtlasQueuedIds?.size || 0) > 0 ||
|
|
@@ -442,16 +694,28 @@
|
|
|
442
694
|
renderer._imageAtlasBatchActive === true || renderer._lodCleanupPending === true ||
|
|
443
695
|
renderer._deferLineRestorePending === true || renderer._hasPendingLineDetailRestore?.(lodBand) === true ||
|
|
444
696
|
Number(renderer._pendingLodVisibilityVersion ?? -1) >= 0 || renderer._fullResHandoffActive === true ||
|
|
445
|
-
renderer.isLoading === true || module?.isLoading === true || renderer._hasResidentLodInstances?.() !== true
|
|
697
|
+
renderer.isLoading === true || module?.isLoading === true || renderer._hasResidentLodInstances?.() !== true;
|
|
698
|
+
if (hasTypedResidentDirtyWork) {
|
|
699
|
+
invalidateAnimatedGifCssFallbackCandidateCache(renderer);
|
|
700
|
+
return true;
|
|
701
|
+
}
|
|
446
702
|
const selectionKey = typeof buildSelectionKey === 'function'
|
|
447
703
|
? buildSelectionKey(module?.multiSelectedNodeIds || null, module?.selectedNodeIdJs || null)
|
|
448
704
|
: '';
|
|
449
|
-
if (renderer._lastAppliedLodSelectionKey !== selectionKey)
|
|
705
|
+
if (renderer._lastAppliedLodSelectionKey !== selectionKey) {
|
|
706
|
+
invalidateAnimatedGifCssFallbackCandidateCache(renderer);
|
|
707
|
+
return true;
|
|
708
|
+
}
|
|
450
709
|
const usesCssImageFallbacks = renderer._shouldUseCssImageFallbackInResidentLod?.(module, lodBand) === true;
|
|
451
|
-
const usesAnimatedGifFallbacks = hasAnimatedGifCssFallbackCandidates(
|
|
710
|
+
const usesAnimatedGifFallbacks = hasAnimatedGifCssFallbackCandidates(
|
|
711
|
+
renderer,
|
|
712
|
+
module,
|
|
713
|
+
isAnimatedGifModel,
|
|
714
|
+
selectionKey
|
|
715
|
+
);
|
|
452
716
|
const fallbackCount = Number(renderer._lodImageCssFallbackNodeIds?.size || 0);
|
|
453
717
|
if (!usesAnimatedGifFallbacks && fallbackCount <= 0) return false;
|
|
454
|
-
const activeFallbackCount =
|
|
718
|
+
const activeFallbackCount = getActiveCssMediaFallbackCountCached(renderer, module);
|
|
455
719
|
return (usesAnimatedGifFallbacks && activeFallbackCount <= 0) ||
|
|
456
720
|
(fallbackCount > 0 && (!(usesCssImageFallbacks || usesAnimatedGifFallbacks) || activeFallbackCount <= 0));
|
|
457
721
|
}
|
|
@@ -800,7 +1064,13 @@
|
|
|
800
1064
|
renderer._nearCssVisibleIds?.add?.(nodeId);
|
|
801
1065
|
if (record.kind === 'image') renderer._syncCssImageBodyBridge?.(entry, module);
|
|
802
1066
|
if (record.kind === 'video') globalThis.MindMapCss3DManager?.syncVideoNodeVisibilityPlayback?.(entry.model, cssObject, true);
|
|
803
|
-
renderer.
|
|
1067
|
+
if (typeof renderer._deleteLodImageCssFallbackNodeId === 'function') {
|
|
1068
|
+
renderer._deleteLodImageCssFallbackNodeId(nodeId);
|
|
1069
|
+
} else {
|
|
1070
|
+
renderer._lodImageCssFallbackNodeIds?.delete?.(nodeId);
|
|
1071
|
+
invalidateAnimatedGifCssFallbackCandidateCache(renderer);
|
|
1072
|
+
invalidateActiveCssMediaFallbackCountCache(renderer);
|
|
1073
|
+
}
|
|
804
1074
|
state.parked.delete(nodeId);
|
|
805
1075
|
renderer._residentCssRestoreCount = Number(renderer._residentCssRestoreCount || 0) + 1;
|
|
806
1076
|
module._css3dVisualChangedThisFrame = true;
|
|
@@ -1462,6 +1732,10 @@
|
|
|
1462
1732
|
fullResCssFringeLayoutWarmCount: Number(renderer?._fullResCssFringeLayoutWarmCount || 0),
|
|
1463
1733
|
residentStableLineReuseCount: Number(renderer?._residentStableLineReuseCount || 0),
|
|
1464
1734
|
residentBoostClearCount: Number(renderer?._residentBoostClearCount || 0),
|
|
1735
|
+
animatedGifFallbackCandidateScanCount: Number(renderer?._animatedGifFallbackCandidateScanCount || 0),
|
|
1736
|
+
animatedGifFallbackCandidateCacheHitCount: Number(renderer?._animatedGifFallbackCandidateCacheHitCount || 0),
|
|
1737
|
+
activeCssMediaFallbackCountScanCount: Number(renderer?._activeCssMediaFallbackCountScanCount || 0),
|
|
1738
|
+
activeCssMediaFallbackCountCacheHitCount: Number(renderer?._activeCssMediaFallbackCountCacheHitCount || 0),
|
|
1465
1739
|
lineTextureRows: Number(renderer?.lineTextureRows || 0),
|
|
1466
1740
|
residentGpuWarmComplete: !!renderer &&
|
|
1467
1741
|
renderer._hasPendingImageAtlasWork?.() !== true &&
|
|
@@ -1487,6 +1761,9 @@
|
|
|
1487
1761
|
window.MindMapRenderPlan = Object.freeze({
|
|
1488
1762
|
configureImageAtlasTexture,
|
|
1489
1763
|
getImageAtlasOutputColorChunk,
|
|
1764
|
+
isRendererDprInteractionActive,
|
|
1765
|
+
getCameraOnlyWebglBlockerMask,
|
|
1766
|
+
getCameraOnlyWebglBlockerNames,
|
|
1490
1767
|
syncCommittedResidentTextCount,
|
|
1491
1768
|
clearFullResImageVisuals,
|
|
1492
1769
|
buildFullResKey,
|
|
@@ -1506,6 +1783,11 @@
|
|
|
1506
1783
|
reuseStableVisibleCss,
|
|
1507
1784
|
reuseActiveCssMediaFallback,
|
|
1508
1785
|
hasAnimatedGifCssFallbackCandidates,
|
|
1786
|
+
invalidateAnimatedGifCssFallbackCandidateCache,
|
|
1787
|
+
getActiveCssMediaFallbackCountCached,
|
|
1788
|
+
invalidateActiveCssMediaFallbackCountCache,
|
|
1789
|
+
markLodImageCssFallbacksChanged,
|
|
1790
|
+
createTrackedLodImageCssFallbackSet,
|
|
1509
1791
|
hasResidentDirtyWork,
|
|
1510
1792
|
hasPendingNearCssWarmup,
|
|
1511
1793
|
reusePreparedImageInstances,
|
package/wwwroot/_framework/{MindExecution.Core.9h7x2mjn0w.dll → MindExecution.Core.sxhdhda5s2.dll}
RENAMED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/wwwroot/_framework/{MindExecution.Web.7tki7xqpt0.dll → MindExecution.Web.krui41i71h.dll}
RENAMED
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mainAssemblyName": "MindExecution.Web",
|
|
3
3
|
"resources": {
|
|
4
|
-
"hash": "sha256-
|
|
4
|
+
"hash": "sha256-ozr0I9dILkt75rgHyhws29r5tPUaoSZNhR5IIMPzRmk=",
|
|
5
5
|
"fingerprinting": {
|
|
6
6
|
"Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
|
|
7
7
|
"Markdig.d1j7v41cl1.dll": "Markdig.dll",
|
|
@@ -122,16 +122,16 @@
|
|
|
122
122
|
"System.brmz7yk5qh.dll": "System.dll",
|
|
123
123
|
"netstandard.b50t77veor.dll": "netstandard.dll",
|
|
124
124
|
"System.Private.CoreLib.g6ztz7cmo2.dll": "System.Private.CoreLib.dll",
|
|
125
|
-
"MindExecution.Core.
|
|
126
|
-
"MindExecution.Kernel.
|
|
127
|
-
"MindExecution.Plugins.Admin.
|
|
128
|
-
"MindExecution.Plugins.Business.
|
|
129
|
-
"MindExecution.Plugins.Concept.
|
|
130
|
-
"MindExecution.Plugins.Directory.
|
|
131
|
-
"MindExecution.Plugins.PlanMaster.
|
|
132
|
-
"MindExecution.Plugins.YouTube.
|
|
133
|
-
"MindExecution.Shared.
|
|
134
|
-
"MindExecution.Web.
|
|
125
|
+
"MindExecution.Core.sxhdhda5s2.dll": "MindExecution.Core.dll",
|
|
126
|
+
"MindExecution.Kernel.j8gyjmvupu.dll": "MindExecution.Kernel.dll",
|
|
127
|
+
"MindExecution.Plugins.Admin.91tk6u6ry5.dll": "MindExecution.Plugins.Admin.dll",
|
|
128
|
+
"MindExecution.Plugins.Business.b7h6v1eygj.dll": "MindExecution.Plugins.Business.dll",
|
|
129
|
+
"MindExecution.Plugins.Concept.i2zgmkmpwv.dll": "MindExecution.Plugins.Concept.dll",
|
|
130
|
+
"MindExecution.Plugins.Directory.r6is6647n2.dll": "MindExecution.Plugins.Directory.dll",
|
|
131
|
+
"MindExecution.Plugins.PlanMaster.s95n9skblk.dll": "MindExecution.Plugins.PlanMaster.dll",
|
|
132
|
+
"MindExecution.Plugins.YouTube.33l2m0y23q.dll": "MindExecution.Plugins.YouTube.dll",
|
|
133
|
+
"MindExecution.Shared.hvehzbzkt7.dll": "MindExecution.Shared.dll",
|
|
134
|
+
"MindExecution.Web.krui41i71h.dll": "MindExecution.Web.dll",
|
|
135
135
|
"dotnet.native.566r55w3xu.js": "dotnet.native.js",
|
|
136
136
|
"dotnet.native.x6q5aixc38.wasm": "dotnet.native.wasm",
|
|
137
137
|
"dotnet.js": "dotnet.js",
|
|
@@ -276,18 +276,18 @@
|
|
|
276
276
|
"System.Xml.XDocument.sn51jas17n.dll": "sha256-GNI2kFgFmPTwzuzwUn8gxK+AzGLUWRJFdg9JzIbrybQ=",
|
|
277
277
|
"System.brmz7yk5qh.dll": "sha256-CfM2miyj1KHApFmqMdLYWio3S/jrdON2pW9Xr2nTwlo=",
|
|
278
278
|
"netstandard.b50t77veor.dll": "sha256-//jQGOXjb8ET8WtXgOJrAxLx6E7zDJ5RjRRutwkvmxo=",
|
|
279
|
-
"MindExecution.Core.
|
|
280
|
-
"MindExecution.Kernel.
|
|
281
|
-
"MindExecution.Plugins.Business.
|
|
282
|
-
"MindExecution.Plugins.Concept.
|
|
283
|
-
"MindExecution.Plugins.PlanMaster.
|
|
284
|
-
"MindExecution.Shared.
|
|
285
|
-
"MindExecution.Web.
|
|
279
|
+
"MindExecution.Core.sxhdhda5s2.dll": "sha256-EIG5k0LEruwTjYF7YvBuQE7fvA8PjNqrVdVmBFoT3Es=",
|
|
280
|
+
"MindExecution.Kernel.j8gyjmvupu.dll": "sha256-swEZF4B89KFSR41x8negm6EC2/0mUl04DC1OcftiXAs=",
|
|
281
|
+
"MindExecution.Plugins.Business.b7h6v1eygj.dll": "sha256-aeAydGWzKaSuHiyUC3J7DaAJadTFaA6+nH4FKQDw53s=",
|
|
282
|
+
"MindExecution.Plugins.Concept.i2zgmkmpwv.dll": "sha256-dqQfhEjHX5uUJGT9Mg7NBoR6acPw7mgNL8Kj3W0AOm4=",
|
|
283
|
+
"MindExecution.Plugins.PlanMaster.s95n9skblk.dll": "sha256-kOyfHalRgMqdg46kBYFgiCX658udoDuwVM9q0rRKFjM=",
|
|
284
|
+
"MindExecution.Shared.hvehzbzkt7.dll": "sha256-jaQX0/pCtCVVmjc1lhP4/7cjTOZEuRs1N6d411G2eQQ=",
|
|
285
|
+
"MindExecution.Web.krui41i71h.dll": "sha256-QHRGgfNtxRcpVgYCkRu8CAnDoOEPMxl5fO03/4xitbQ="
|
|
286
286
|
},
|
|
287
287
|
"lazyAssembly": {
|
|
288
|
-
"MindExecution.Plugins.Admin.
|
|
289
|
-
"MindExecution.Plugins.Directory.
|
|
290
|
-
"MindExecution.Plugins.YouTube.
|
|
288
|
+
"MindExecution.Plugins.Admin.91tk6u6ry5.dll": "sha256-/e3ID1fHcTs61cU4k7Xis6qyq280i5dMBV1VxEzlB/U=",
|
|
289
|
+
"MindExecution.Plugins.Directory.r6is6647n2.dll": "sha256-E+nM/owGe41raBzurfDs4uNfmMFCtzXBt9cLv5ckr8Y=",
|
|
290
|
+
"MindExecution.Plugins.YouTube.33l2m0y23q.dll": "sha256-wbIiPGdzKEfUXoG42y0fT3HqEIenHcIo9vYY4y/SAVM="
|
|
291
291
|
}
|
|
292
292
|
},
|
|
293
293
|
"cacheBootResources": true,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/wwwroot/icon-192.png
CHANGED
|
Binary file
|
package/wwwroot/icon-512.png
CHANGED
|
Binary file
|
package/wwwroot/index.html
CHANGED
|
@@ -4,9 +4,13 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="utf-8" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>MindExec | Business Execution OS for solo builders</title>
|
|
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
|
-
<base href="/" />
|
|
7
|
+
<title>MindExec | Business Execution OS for solo builders</title>
|
|
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
|
+
<base href="/" />
|
|
10
|
+
<meta name="theme-color" content="#071a36" />
|
|
11
|
+
<link rel="icon" type="image/png" sizes="32x32" href="/mindexec-favicon-v2.png" />
|
|
12
|
+
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png?v=20260728-app-icon-v1" />
|
|
13
|
+
<link rel="manifest" href="manifest.webmanifest?v=20260728-app-icon-v1" />
|
|
10
14
|
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260629-ai-task-flow-v863" />
|
|
11
15
|
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260629-mdm-shadow-v856" />
|
|
12
16
|
<!-- ??좎뜦堉??Font Awesome (local) ??좎뜦堉??-->
|
|
@@ -579,7 +583,7 @@
|
|
|
579
583
|
}
|
|
580
584
|
|
|
581
585
|
const base = '_content/MindExecution.Shared/js/';
|
|
582
|
-
const scriptVersion = '
|
|
586
|
+
const scriptVersion = '20260728-camera-render-policy-v961';
|
|
583
587
|
const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
|
|
584
588
|
console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
|
|
585
589
|
const criticalScripts = [
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "MindExec",
|
|
3
3
|
"short_name": "MindExec",
|
|
4
|
-
"id": "./",
|
|
5
|
-
"start_url": "./",
|
|
6
|
-
"display": "standalone",
|
|
7
|
-
"background_color": "#
|
|
8
|
-
"theme_color": "#
|
|
9
|
-
"prefer_related_applications": false,
|
|
10
|
-
"icons": [
|
|
11
|
-
{
|
|
12
|
-
"src": "icon-512.png",
|
|
13
|
-
"type": "image/png",
|
|
14
|
-
"sizes": "512x512"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
4
|
+
"id": "./",
|
|
5
|
+
"start_url": "./",
|
|
6
|
+
"display": "standalone",
|
|
7
|
+
"background_color": "#071a36",
|
|
8
|
+
"theme_color": "#071a36",
|
|
9
|
+
"prefer_related_applications": false,
|
|
10
|
+
"icons": [
|
|
11
|
+
{
|
|
12
|
+
"src": "icon-512.png?v=20260728-app-icon-v1",
|
|
13
|
+
"type": "image/png",
|
|
14
|
+
"sizes": "512x512",
|
|
15
|
+
"purpose": "any maskable"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"src": "icon-192.png?v=20260728-app-icon-v1",
|
|
19
|
+
"type": "image/png",
|
|
20
|
+
"sizes": "192x192",
|
|
21
|
+
"purpose": "any maskable"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
Binary file
|