@mindexec/cli 0.2.301 → 0.2.303

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindexec/cli",
3
- "version": "0.2.301",
3
+ "version": "0.2.303",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -92,7 +92,6 @@ body.mind-map-scroll-locked {
92
92
  -webkit-font-smoothing: antialiased;
93
93
  -moz-osx-font-smoothing: grayscale;
94
94
  /* 서브픽셀 정렬로 흐림 방지 */
95
- transform: translateZ(0);
96
95
  }
97
96
 
98
97
  .css3d-resolution-wrapper > .map-node,
@@ -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 = '20260621-css-image-single-surface-v760';
8
+ const MINDMAP_CORE_BUILD_ID = '20260621-render-surface-v764';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -973,6 +973,7 @@
973
973
  tintVideoLayoutInNear: false,
974
974
  disableNearVideoGlow: false
975
975
  });
976
+ const FRAME_PERF_PROBE_KEEP_ALIVE_ENABLED = false;
976
977
  const NODE_FRAME_DEBUG_LAYER_ID = 'mind-map-node-frame-debug-layer';
977
978
  const NODE_FRAME_DEBUG_MAX_ENTRIES = 28;
978
979
  const NODE_FRAME_DEBUG_COLORS = Object.freeze({
@@ -2452,6 +2453,7 @@
2452
2453
  animationLoopDelayMs: Number(moduleInstance._lastAnimationLoopDelayMs || 0),
2453
2454
  animationFrameScheduled: !!moduleInstance.animationFrameId,
2454
2455
  animationIdleTimerScheduled: !!moduleInstance._animationIdleTimerId,
2456
+ animationIdleBlockers: moduleInstance._lastAnimationIdleBlockers || [],
2455
2457
  residentDirtyState,
2456
2458
  residentLastSkipReason: String(moduleInstance.lodRenderer?._lastResidentSkipReason || ''),
2457
2459
  residentLodWakeScheduled: !!moduleInstance.lodRenderer?._residentLodWakeTimer,
@@ -3104,6 +3106,38 @@
3104
3106
  ]);
3105
3107
  }
3106
3108
 
3109
+ function collectNodeFrameDebugVisibleGlRenderables(entry) {
3110
+ const root = entry?.glObject || null;
3111
+ if (!root?.traverse) {
3112
+ return [];
3113
+ }
3114
+
3115
+ const renderables = [];
3116
+ root.traverse(child => {
3117
+ if (!child || child === root || child.visible === false) return;
3118
+
3119
+ const isRenderable =
3120
+ child.isMesh === true ||
3121
+ child.isLine === true ||
3122
+ child.isLineSegments === true ||
3123
+ child.isSprite === true ||
3124
+ child.isPoints === true;
3125
+ if (!isRenderable) return;
3126
+
3127
+ if (child === entry?.glowMesh || String(child.name || '') === 'glow') {
3128
+ return;
3129
+ }
3130
+
3131
+ renderables.push({
3132
+ name: String(child.name || child.type || 'renderable'),
3133
+ type: String(child.type || ''),
3134
+ renderOrder: Number(child.renderOrder || 0)
3135
+ });
3136
+ });
3137
+
3138
+ return renderables;
3139
+ }
3140
+
3107
3141
  function getNodeFrameDebugOverlayRects(module, nodeId) {
3108
3142
  const normalizedId = normalizeNodeFrameDebugId(nodeId);
3109
3143
  const cards = module?._textOverlayV2State?.cards || null;
@@ -3203,6 +3237,7 @@
3203
3237
  const mediaContentRect = mediaLayout.contentRect;
3204
3238
  const mediaGutterRects = Array.isArray(mediaLayout.gutterRects) ? mediaLayout.gutterRects : [];
3205
3239
  const overlayRects = getNodeFrameDebugOverlayRects(module, nodeId);
3240
+ const visibleGlRenderables = collectNodeFrameDebugVisibleGlRenderables(entry);
3206
3241
  const unionRect = unionNodeFrameDebugRects([
3207
3242
  modelRect,
3208
3243
  bodyRect,
@@ -3255,6 +3290,12 @@
3255
3290
  && wrapperElement?.style?.display !== 'none',
3256
3291
  glVisible: entry.glObject ? entry.glObject.visible !== false : false,
3257
3292
  bodyVisible: entry.bodyMesh ? entry.bodyMesh.visible !== false : false,
3293
+ cssVisibleWithGlRenderableOverlap: entry.currentType === 'CSS'
3294
+ && entry.cssObject?.visible !== false
3295
+ && wrapperElement?.style?.display !== 'none'
3296
+ && visibleGlRenderables.length > 0,
3297
+ visibleGlRenderableCount: visibleGlRenderables.length,
3298
+ visibleGlRenderableNames: visibleGlRenderables.slice(0, 8).map(item => item.name),
3258
3299
  cssZIndex: String(wrapperElement?.style?.zIndex || ''),
3259
3300
  glRenderOrder: Number(entry.bodyMesh?.renderOrder ?? entry.glObject?.renderOrder ?? 0)
3260
3301
  });
@@ -9014,12 +9055,14 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
9014
9055
  renderDebugFlags
9015
9056
  }) === true;
9016
9057
  let themeAnimatedThisFrame = false;
9017
- if (allowContinuousThemeAnimationThisFrame === true &&
9058
+ const canRunThemeAnimationFrame =
9059
+ allowContinuousThemeAnimationThisFrame === true &&
9018
9060
  shouldDeferFullResWebglForNormalCss3dMotion !== true &&
9019
9061
  (isThemeAnimationEnabled || shouldForceGpuParticleAnimation) &&
9020
9062
  isLocalSnapGridOnlyTheme(this) !== true &&
9021
9063
  this.currentThemeObject &&
9022
- typeof this.currentThemeObject.animate === 'function') {
9064
+ typeof this.currentThemeObject.animate === 'function';
9065
+ if (canRunThemeAnimationFrame) {
9023
9066
  const forceThemeCameraUpdate =
9024
9067
  hasNonCameraNavigationForcedUpdate === true ||
9025
9068
  zoomEndedThisFrame === true ||
@@ -9054,6 +9097,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
9054
9097
  }
9055
9098
  this._forceThemeAnimationFrame = false;
9056
9099
  }
9100
+ } else if (this._forceThemeAnimationFrame === true &&
9101
+ isBoardLoading !== true &&
9102
+ isInteractiveFrame !== true) {
9103
+ this._forceThemeAnimationFrame = false;
9057
9104
  }
9058
9105
 
9059
9106
  // 7. Render
@@ -9416,8 +9463,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
9416
9463
  window.MindMapMultiSelect.hide();
9417
9464
  }
9418
9465
  _profileSection('multiSelect');
9419
- if (renderDebugFlags.enableNodeFrameDebug === true || this._nodeFrameDebugLayer) {
9466
+ if (renderDebugFlags.enableNodeFrameDebug === true) {
9420
9467
  updateNodeFrameDebugLayer(this);
9468
+ } else if (this._nodeFrameDebugLayer) {
9469
+ destroyNodeFrameDebugLayer(this);
9421
9470
  }
9422
9471
  _profileSection('nodeFrameDebug');
9423
9472
 
@@ -9577,8 +9626,33 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
9577
9626
  shouldRefreshPassiveDomTextOverlay === true ||
9578
9627
  shouldFinalizePassiveOverlayLayout === true ||
9579
9628
  shouldAttemptPassiveOverlayCameraFastPath === true;
9629
+ const animationIdleBlockers = {
9630
+ framePerfProbeKeepAlive: shouldCaptureFramePerf === true && FRAME_PERF_PROBE_KEEP_ALIVE_ENABLED === true,
9631
+ boardLoading: isBoardLoading === true,
9632
+ interactiveFrame: isInteractiveFrame === true,
9633
+ update: shouldUpdate === true,
9634
+ themeAnimated: themeAnimatedThisFrame === true,
9635
+ webglFrame: shouldRenderWebglFrame === true,
9636
+ css3dFrame: shouldRenderCss3dFrame === true,
9637
+ textOverlaySync: shouldSyncTextOverlays === true,
9638
+ forceUpdate: Number(this._forceUpdateFrames || 0) > 0,
9639
+ forceThemeAnimation: this._forceThemeAnimationFrame === true,
9640
+ fullResVisibilityReconcile: this._fullResVisibilityReconcilePending === true,
9641
+ pendingNearCssWarmup: hasPendingNearCssWarmup === true,
9642
+ residentDirtyRequiresUpdate: residentDirtyRequiresUpdate === true,
9643
+ residentBandChanging: residentBandChanging === true,
9644
+ overlayV2Dirty: hasOverlayV2DirtyState === true,
9645
+ overlayDirty: this._overlayDirty === true,
9646
+ passiveOverlayRefreshDeferred: this._deferPassiveOverlayRefresh === true,
9647
+ passiveDomTextOverlayRefresh: shouldRefreshPassiveDomTextOverlay === true,
9648
+ passiveOverlayFinalize: shouldFinalizePassiveOverlayLayout === true,
9649
+ passiveOverlayCameraFastPath: shouldAttemptPassiveOverlayCameraFastPath === true
9650
+ };
9651
+ this._lastAnimationIdleBlockers = Object.entries(animationIdleBlockers)
9652
+ .filter(([, value]) => value === true)
9653
+ .map(([key]) => key);
9580
9654
  const shouldParkIdleAnimationLoop =
9581
- shouldCaptureFramePerf !== true &&
9655
+ (shouldCaptureFramePerf !== true || FRAME_PERF_PROBE_KEEP_ALIVE_ENABLED !== true) &&
9582
9656
  isBoardLoading !== true &&
9583
9657
  isInteractiveFrame !== true &&
9584
9658
  shouldUpdate !== true &&
@@ -9596,7 +9670,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
9596
9670
  }
9597
9671
  const shouldContinueLowFpsIdleCadence =
9598
9672
  shouldUseAnimationLowFpsFrame === true &&
9599
- shouldCaptureFramePerf !== true &&
9673
+ (shouldCaptureFramePerf !== true || FRAME_PERF_PROBE_KEEP_ALIVE_ENABLED !== true) &&
9600
9674
  isInteractiveFrame !== true &&
9601
9675
  shouldUpdate !== true &&
9602
9676
  hasPendingAnimationWakeWork !== true;
@@ -15,7 +15,7 @@
15
15
  const CSS_IMAGE_PROMOTION_BUDGET_MS = 4;
16
16
  const CSS_IMAGE_BLOB_CACHE_LIMIT = 160;
17
17
  const CSS_IMAGE_DISPLAY_MAX_CONCURRENCY = 8;
18
- const CSS3D_TEXT_NODE_RESOLUTION_SCALE = 2.0;
18
+ const CSS3D_TEXT_NODE_RESOLUTION_SCALE = 3.0;
19
19
  const CSS3D_MEDIA_NODE_RESOLUTION_SCALE = 1.0;
20
20
  const LOOPBACK_ASSET_URL_REGEX = /^http:\/\/(?:127(?:\.\d{1,3}){3}|localhost|\[::1\])(?::\d+)?\/assets\//i;
21
21
  let _cssImagePreviewHoldUntil = 0;
@@ -51,7 +51,7 @@
51
51
  // ▲▲▲ [Usage] ▲▲▲
52
52
 
53
53
  // Procedural line rendering settings
54
- const LOD_RENDERER_BUILD_ID = '20260621-css-image-single-surface-v760';
54
+ const LOD_RENDERER_BUILD_ID = '20260621-render-surface-v764';
55
55
  const DirtyKind = Object.freeze({
56
56
  ResidentFullRebuild: 'resident-full-rebuild',
57
57
  ResidentPatch: 'resident-patch',
@@ -2758,6 +2758,97 @@
2758
2758
  // glow는 mind-map-core.js에서 카메라 거리 기반으로 관리
2759
2759
  }
2760
2760
 
2761
+ _isCssModePreservedGlRenderable(entry, child) {
2762
+ if (!child) return false;
2763
+ if (child === entry?.glowMesh || String(child.name || '') === 'glow') {
2764
+ return true;
2765
+ }
2766
+
2767
+ return child.userData?.mindCanvasPreserveInCssMode === true;
2768
+ }
2769
+
2770
+ _setCssModeGlRenderablesHidden(entry, hidden, options = {}) {
2771
+ if (!entry?.glObject) return 0;
2772
+
2773
+ this._ensureNodePartCache(entry);
2774
+
2775
+ const preserveBody = options?.preserveBody === true;
2776
+ const markerKey = 'mindCanvasCssModeHidden';
2777
+ let changedCount = 0;
2778
+
2779
+ entry.glObject.traverse?.(child => {
2780
+ if (!child || child === entry.glObject) return;
2781
+
2782
+ const isRenderable =
2783
+ child.isMesh === true ||
2784
+ child.isLine === true ||
2785
+ child.isLineSegments === true ||
2786
+ child.isSprite === true ||
2787
+ child.isPoints === true;
2788
+ if (!isRenderable) return;
2789
+
2790
+ child.userData ||= {};
2791
+
2792
+ if (child === entry.bodyMesh && preserveBody) {
2793
+ if (hidden === true) {
2794
+ if (child.userData[markerKey] === true) {
2795
+ delete child.userData[markerKey];
2796
+ }
2797
+ if (child.visible !== true) {
2798
+ child.visible = true;
2799
+ changedCount++;
2800
+ }
2801
+ }
2802
+ return;
2803
+ }
2804
+
2805
+ if (this._isCssModePreservedGlRenderable(entry, child)) {
2806
+ return;
2807
+ }
2808
+
2809
+ if (hidden === true) {
2810
+ if (child.visible !== false) {
2811
+ child.userData[markerKey] = true;
2812
+ child.visible = false;
2813
+ changedCount++;
2814
+ }
2815
+ return;
2816
+ }
2817
+
2818
+ if (child.userData[markerKey] === true) {
2819
+ delete child.userData[markerKey];
2820
+ if (child.visible !== true) {
2821
+ child.visible = true;
2822
+ changedCount++;
2823
+ }
2824
+ }
2825
+ });
2826
+
2827
+ return changedCount;
2828
+ }
2829
+
2830
+ _restoreCssModeGlRenderables(entry) {
2831
+ this._setCssModeGlRenderablesHidden(entry, false);
2832
+ }
2833
+
2834
+ _hideGlBodyOnly(entry, options = {}) {
2835
+ if (!entry?.glObject) return;
2836
+
2837
+ this._ensureNodePartCache(entry);
2838
+ this._setCssModeGlRenderablesHidden(entry, true, options);
2839
+
2840
+ if (ENABLE_WEBGL_GLOW !== true) {
2841
+ entry.glObject.visible = false;
2842
+ return;
2843
+ }
2844
+
2845
+ entry.glObject.visible = true;
2846
+ const body = entry.bodyMesh || null;
2847
+ const tail = entry.tailMesh || null;
2848
+ if (body && options?.preserveBody !== true) body.visible = false;
2849
+ if (tail) tail.visible = false;
2850
+ }
2851
+
2761
2852
  _restoreFullResMotionOptimizedNode(entry, lodBand = this._currentLodBand) {
2762
2853
  if (!entry?.glObject) return;
2763
2854
 
@@ -4764,6 +4855,17 @@
4764
4855
  child.scale?.setScalar?.(1.0);
4765
4856
  }
4766
4857
  });
4858
+ {
4859
+ const isImageNode = getNodeContentType(model) === 'image';
4860
+ const preserveImageBody =
4861
+ isImageNode &&
4862
+ entry.bodyMesh?.visible === true &&
4863
+ entry.model?._showImageBodyInCssMode === true;
4864
+ this._hideGlBodyOnly(entry, { preserveBody: preserveImageBody });
4865
+ if (isImageNode) {
4866
+ this._setImageMidDecorationVisibility(entry, false);
4867
+ }
4868
+ }
4767
4869
  }
4768
4870
  // ▲▲▲ [Fix] ▲▲▲
4769
4871
 
@@ -4812,6 +4914,7 @@
4812
4914
  // Near 모드(LOD Off)일 때만 GL Body를 복구합니다.
4813
4915
  if (entry.glObject && (!this.isInLODMode || entry.model?.contentType === 'image' || shouldForceMediaGlFallback)) {
4814
4916
  this._ensureNodePartCache(entry);
4917
+ this._restoreCssModeGlRenderables(entry);
4815
4918
  entry.glObject.visible = true;
4816
4919
  const body = entry.bodyMesh || null;
4817
4920
  const tail = entry.tailMesh || null;
@@ -4909,6 +5012,7 @@
4909
5012
  child.visible = false;
4910
5013
  }
4911
5014
  });
5015
+ this._hideGlBodyOnly(entry);
4912
5016
  }
4913
5017
  }
4914
5018
 
@@ -9526,6 +9630,7 @@
9526
9630
 
9527
9631
  if (entry.glObject) {
9528
9632
  this._ensureNodePartCache(entry);
9633
+ this._restoreCssModeGlRenderables(entry);
9529
9634
  entry.glObject.visible = true;
9530
9635
  const body = entry.bodyMesh || null;
9531
9636
  const tail = entry.tailMesh || null;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "MindExecution.Web",
3
3
  "resources": {
4
- "hash": "sha256-OtTww/K4VhDTgTS4mHneBJqBjhiKpOOo+MCUeq0ZDvI=",
4
+ "hash": "sha256-YgJcRsTo1IPvOdBuYHz3Mkio500xFMYOisAGvpYEHik=",
5
5
  "fingerprinting": {
6
6
  "Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
7
7
  "Markdig.d1j7v41cl1.dll": "Markdig.dll",
@@ -132,7 +132,7 @@
132
132
  "MindExecution.Plugins.PlanMaster.krn3jgvjpa.dll": "MindExecution.Plugins.PlanMaster.dll",
133
133
  "MindExecution.Plugins.YouTube.5m53srfud6.dll": "MindExecution.Plugins.YouTube.dll",
134
134
  "MindExecution.Shared.rv3rw2h14g.dll": "MindExecution.Shared.dll",
135
- "MindExecution.Web.vb3eqoz4v9.dll": "MindExecution.Web.dll",
135
+ "MindExecution.Web.82k6ktlkfg.dll": "MindExecution.Web.dll",
136
136
  "dotnet.js": "dotnet.js",
137
137
  "dotnet.native.qc8g39g30v.js": "dotnet.native.js",
138
138
  "dotnet.native.boem75ye5i.wasm": "dotnet.native.wasm",
@@ -284,7 +284,7 @@
284
284
  "MindExecution.Plugins.Concept.l9z9tx9svt.dll": "sha256-N/QoILmTilvX5Zo4SCy7ENTCqMzSC6RIEQlEwtxkGPo=",
285
285
  "MindExecution.Plugins.PlanMaster.krn3jgvjpa.dll": "sha256-8IFpm/2fpsWD3syyl58LTSWSGC8PfcrsLdmmSKR1Sq0=",
286
286
  "MindExecution.Shared.rv3rw2h14g.dll": "sha256-ZwT/+Wjs0ZoDe3XZwwDlkPwo7xexhoK1RcyI2rEiywY=",
287
- "MindExecution.Web.vb3eqoz4v9.dll": "sha256-W/K+qUiAlmIiww6SxYbWiLUOla0pMGqpAfr7q+dmBgs="
287
+ "MindExecution.Web.82k6ktlkfg.dll": "sha256-ECPSyJrziGEVhCw8ZUXkRsfTDjWCk676m5yz99b13N4="
288
288
  },
289
289
  "lazyAssembly": {
290
290
  "MindExecution.Plugins.Admin.uuf238xa0h.dll": "sha256-OrCIUack8nSWBBiZK65DlJ3YGM677RAA8cX/oJjhm5c=",
@@ -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=20260621-css-image-single-surface-v760" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-css-image-single-surface-v760" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260621-render-surface-v764" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-render-surface-v764" />
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 = '20260621-css-image-single-surface-v760';
582
+ const scriptVersion = '20260621-render-surface-v764';
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": "A7baj8vz",
2
+ "version": "ruCzPCdj",
3
3
  "assets": [
4
4
  {
5
5
  "hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
@@ -42,7 +42,7 @@
42
42
  "url": "_content/MindExecution.Shared/css/app.css"
43
43
  },
44
44
  {
45
- "hash": "sha256-vVQG8dZd8XPd5lEd2meBWtET9S2XmSjWYfRG4FlMdIU=",
45
+ "hash": "sha256-fBZF6kWiDPt1sGCsO142TDnkhyhEpqsEyhsor/tlD7s=",
46
46
  "url": "_content/MindExecution.Shared/css/mind-map-overrides.css"
47
47
  },
48
48
  {
@@ -78,7 +78,7 @@
78
78
  "url": "_content/MindExecution.Shared/js/marked.min.js"
79
79
  },
80
80
  {
81
- "hash": "sha256-b2u6cSJGIXDsWA8V4jbeQJGX+azC197EMCEBJzyJwN0=",
81
+ "hash": "sha256-HKwYME1RgiPDf9/sqJM9cACT6oNp0T289ABb6yhj2Do=",
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
83
83
  },
84
84
  {
@@ -86,7 +86,7 @@
86
86
  "url": "_content/MindExecution.Shared/js/mind-map-core.js.backup"
87
87
  },
88
88
  {
89
- "hash": "sha256-ET3Xg9eNPJjBlAfUFDjw1r6BtKYdEqkoxyjAo+z3rEE=",
89
+ "hash": "sha256-NIcvifXg16PDsJNbK9ML9ulTLc1AythfZn++dITG33s=",
90
90
  "url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
91
91
  },
92
92
  {
@@ -114,7 +114,7 @@
114
114
  "url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
115
115
  },
116
116
  {
117
- "hash": "sha256-4Eptn15wU04ThuQtEErazlaA5Izn+rdSf7VgdQsmBYA=",
117
+ "hash": "sha256-rfWvg1M/ej67E8jHQnhft3J1kl+26xCAih2xbhjdMFk=",
118
118
  "url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
119
119
  },
120
120
  {
@@ -446,8 +446,8 @@
446
446
  "url": "_framework/MindExecution.Shared.rv3rw2h14g.dll"
447
447
  },
448
448
  {
449
- "hash": "sha256-W/K+qUiAlmIiww6SxYbWiLUOla0pMGqpAfr7q+dmBgs=",
450
- "url": "_framework/MindExecution.Web.vb3eqoz4v9.dll"
449
+ "hash": "sha256-ECPSyJrziGEVhCw8ZUXkRsfTDjWCk676m5yz99b13N4=",
450
+ "url": "_framework/MindExecution.Web.82k6ktlkfg.dll"
451
451
  },
452
452
  {
453
453
  "hash": "sha256-IsZJ91/OW+fHzNqIgEc7Y072ns8z9dGritiSyvR9Wgc=",
@@ -770,7 +770,7 @@
770
770
  "url": "_framework/Websocket.Client.vapounvmnl.dll"
771
771
  },
772
772
  {
773
- "hash": "sha256-O8em1XbCRLjEd/hcubu7Ryw+oGv+jYqaVmK41A5y5zM=",
773
+ "hash": "sha256-/y7nWgvIiQwrfUfw4xVQPgcy9m78NRMdMq8TbflUDDI=",
774
774
  "url": "_framework/blazor.boot.json"
775
775
  },
776
776
  {
@@ -834,7 +834,7 @@
834
834
  "url": "image-manifest.json"
835
835
  },
836
836
  {
837
- "hash": "sha256-Mx0LK7PCZgmIE/7IpOtqDjQWG6xfhcEJirhlGrrkwsQ=",
837
+ "hash": "sha256-uCxwMt+KFk4zlQHx+qaZ17q6j5sRS3XOFt7RqN1OkG8=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: A7baj8vz */
1
+ /* Manifest version: ruCzPCdj */
2
2
  // Hosted deployments should prefer the network over stale offline caches.
3
3
  // This service worker immediately clears old Blazor offline caches and unregisters itself.
4
4