@mindexec/cli 0.2.448 → 0.2.450

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.
Files changed (24) hide show
  1. package/codex-runtime.js +65 -7
  2. package/package.json +5 -2
  3. package/scripts/codex-sdk-runtime-smoke.mjs +89 -0
  4. package/wwwroot/_content/MindExecution.Shared/css/app.css +1 -1
  5. package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +204 -199
  6. package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +12 -2
  7. package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +20 -106
  8. package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-video-placeholder.js +107 -0
  9. package/wwwroot/_framework/MindExecution.Core.9h7x2mjn0w.dll +0 -0
  10. package/wwwroot/_framework/{MindExecution.Kernel.zupeldfptg.dll → MindExecution.Kernel.8te3ay3qs6.dll} +0 -0
  11. package/wwwroot/_framework/{MindExecution.Plugins.Admin.hq0vyqnqtn.dll → MindExecution.Plugins.Admin.imt43kggvu.dll} +0 -0
  12. package/wwwroot/_framework/{MindExecution.Plugins.Business.pucw3o7rno.dll → MindExecution.Plugins.Business.26yozgyvan.dll} +0 -0
  13. package/wwwroot/_framework/{MindExecution.Plugins.Concept.557tzzkrrx.dll → MindExecution.Plugins.Concept.k7fd1qvmfx.dll} +0 -0
  14. package/wwwroot/_framework/{MindExecution.Plugins.Directory.zh1ddg1fn6.dll → MindExecution.Plugins.Directory.88ng22x3y0.dll} +0 -0
  15. package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.0z9pzynpu9.dll → MindExecution.Plugins.PlanMaster.ll20yqlc09.dll} +0 -0
  16. package/wwwroot/_framework/{MindExecution.Plugins.YouTube.y8g77r54fa.dll → MindExecution.Plugins.YouTube.gqu5xngvav.dll} +0 -0
  17. package/wwwroot/_framework/{MindExecution.Shared.1ymsdbwid2.dll → MindExecution.Shared.6ivt1fatt3.dll} +0 -0
  18. package/wwwroot/_framework/MindExecution.Web.7tki7xqpt0.dll +0 -0
  19. package/wwwroot/_framework/blazor.boot.json +21 -21
  20. package/wwwroot/index.html +2 -1
  21. package/wwwroot/service-worker-assets.js +31 -27
  22. package/wwwroot/service-worker.js +1 -1
  23. package/wwwroot/_framework/MindExecution.Core.mswl4wlkm9.dll +0 -0
  24. package/wwwroot/_framework/MindExecution.Web.bb1txupuv0.dll +0 -0
@@ -51,7 +51,7 @@
51
51
  // ▲▲▲ [Usage] ▲▲▲
52
52
 
53
53
  // Procedural line rendering settings
54
- const LOD_RENDERER_BUILD_ID = '20260725-cold-mid-line-restore-v846';
54
+ const LOD_RENDERER_BUILD_ID = '20260727-mid-line-invariant-v847';
55
55
  const DirtyKind = Object.freeze({
56
56
  ResidentFullRebuild: 'resident-full-rebuild',
57
57
  ResidentPatch: 'resident-patch',
@@ -585,9 +585,7 @@
585
585
  return !isAnimatedGifImageModel(model);
586
586
  }
587
587
 
588
- // Every video needs a resident MID/FAR visual. Videos without an
589
- // explicit preview use a lightweight atlas placeholder so the live
590
- // <video> element can stay suspended without making the node vanish.
588
+ // Videos keep a lightweight resident MID/FAR placeholder.
591
589
  if (contentType === 'video') {
592
590
  return true;
593
591
  }
@@ -1263,30 +1261,8 @@
1263
1261
  }
1264
1262
 
1265
1263
  _getOrCreateImageAtlasSlot(nodeId) {
1266
- const normalizedId = String(nodeId || '').trim();
1267
- if (!normalizedId) {
1268
- return null;
1269
- }
1270
-
1271
- let slot = this.imageAtlasSlots.get(normalizedId) || null;
1272
- if (slot) {
1273
- return slot;
1274
- }
1275
-
1276
- const slotIndex = this._allocateImageAtlasSlot();
1277
- if (slotIndex < 0) {
1278
- return null;
1279
- }
1280
-
1281
- slot = {
1282
- slotIndex,
1283
- key: '',
1284
- uvRect: this._getImageAtlasUvRect(slotIndex),
1285
- ready: false,
1286
- unsupported: false
1287
- };
1288
- this.imageAtlasSlots.set(normalizedId, slot);
1289
- return slot;
1264
+ return window.MindMapLodVideoPlaceholder
1265
+ ?.getOrCreateAtlasSlot?.(this, nodeId) || null;
1290
1266
  }
1291
1267
 
1292
1268
  _compactImageAtlasLoadQueue(force = false) {
@@ -1688,77 +1664,15 @@
1688
1664
  }
1689
1665
 
1690
1666
  _drawVideoLodPlaceholder(slot, nodeWidth, nodeHeight) {
1691
- if (!slot || !this.imageAtlasCanvas || typeof document === 'undefined') {
1692
- return false;
1693
- }
1694
-
1695
- const ctx = this.imageAtlasCanvas.getContext('2d', { alpha: false });
1696
- if (!ctx) {
1697
- return false;
1698
- }
1699
-
1700
- const columns = this.imageAtlasColumns || IMAGE_LOD_ATLAS_COLUMNS;
1701
- const col = slot.slotIndex % columns;
1702
- const row = Math.floor(slot.slotIndex / columns);
1703
- const x = col * IMAGE_LOD_THUMBNAIL_SIZE;
1704
- const y = row * IMAGE_LOD_THUMBNAIL_SIZE;
1705
- const size = IMAGE_LOD_THUMBNAIL_SIZE;
1706
- const safeWidth = Math.max(1, Number(nodeWidth || 300));
1707
- const safeHeight = Math.max(1, Number(nodeHeight || 300));
1708
- const targetAspect = safeWidth / safeHeight;
1709
-
1710
- try {
1711
- ctx.save();
1712
-
1713
- const background = ctx.createLinearGradient(x, y, x, y + size);
1714
- background.addColorStop(0, '#26364d');
1715
- background.addColorStop(1, '#0f172a');
1716
- ctx.fillStyle = background;
1717
- ctx.fillRect(x, y, size, size);
1718
-
1719
- const inset = 4;
1720
- ctx.strokeStyle = 'rgba(148, 163, 184, 0.58)';
1721
- ctx.lineWidth = 2;
1722
- ctx.strokeRect(x + inset, y + inset, size - inset * 2, size - inset * 2);
1723
-
1724
- // Pre-compensate the icon for the square atlas tile being
1725
- // stretched to the video's world-space aspect ratio.
1726
- const radiusX = size * 0.19;
1727
- const radiusY = Math.min(size * 0.34, radiusX * Math.max(0.55, targetAspect));
1728
- const centerX = x + size * 0.5;
1729
- const centerY = y + size * 0.48;
1730
- ctx.beginPath();
1731
- ctx.ellipse(centerX, centerY, radiusX, radiusY, 0, 0, Math.PI * 2);
1732
- ctx.fillStyle = 'rgba(255, 255, 255, 0.18)';
1733
- ctx.fill();
1734
- ctx.strokeStyle = 'rgba(255, 255, 255, 0.62)';
1735
- ctx.lineWidth = 2;
1736
- ctx.stroke();
1737
-
1738
- const triangleWidth = size * 0.13;
1739
- const triangleHeight = Math.min(size * 0.24, triangleWidth * Math.max(0.85, targetAspect));
1740
- ctx.beginPath();
1741
- ctx.moveTo(centerX - triangleWidth * 0.35, centerY - triangleHeight * 0.5);
1742
- ctx.lineTo(centerX + triangleWidth * 0.7, centerY);
1743
- ctx.lineTo(centerX - triangleWidth * 0.35, centerY + triangleHeight * 0.5);
1744
- ctx.closePath();
1745
- ctx.fillStyle = '#f8fafc';
1746
- ctx.fill();
1747
-
1748
- ctx.fillStyle = 'rgba(226, 232, 240, 0.35)';
1749
- ctx.fillRect(x + size * 0.18, y + size * 0.82, size * 0.64, 2);
1750
- ctx.fillStyle = 'rgba(248, 250, 252, 0.78)';
1751
- ctx.fillRect(x + size * 0.18, y + size * 0.82, size * 0.2, 2);
1752
- ctx.restore();
1753
-
1754
- if (this.imageAtlasTexture) {
1755
- this.imageAtlasTexture.needsUpdate = true;
1756
- }
1757
- return true;
1758
- } catch {
1759
- try { ctx.restore(); } catch { }
1760
- return false;
1761
- }
1667
+ return window.MindMapLodVideoPlaceholder?.draw?.({
1668
+ slot,
1669
+ canvas: this.imageAtlasCanvas,
1670
+ texture: this.imageAtlasTexture,
1671
+ columns: this.imageAtlasColumns || IMAGE_LOD_ATLAS_COLUMNS,
1672
+ thumbnailSize: IMAGE_LOD_THUMBNAIL_SIZE,
1673
+ nodeWidth,
1674
+ nodeHeight
1675
+ }) === true;
1762
1676
  }
1763
1677
 
1764
1678
  _ensureImageLodThumbnail(entry) {
@@ -2361,9 +2275,9 @@
2361
2275
  `,
2362
2276
  transparent: true,
2363
2277
  depthWrite: true, // Enable depth write to occlude grid
2364
- depthTest: true,
2365
- side: THREE.DoubleSide,
2366
- polygonOffset: true,
2278
+ depthTest: true,
2279
+ side: THREE.DoubleSide,
2280
+ polygonOffset: true,
2367
2281
  polygonOffsetFactor: -20.0, // Priority over Node(-10.0) -> -20.0
2368
2282
  polygonOffsetUnits: -20.0
2369
2283
  });
@@ -7440,7 +7354,7 @@
7440
7354
 
7441
7355
  _updateLineRenderState(cameraZ, currentTextLikeCount, lodBand = this._currentLodBand) {
7442
7356
  const disableByCount = currentTextLikeCount > LINE_DISABLE_THRESHOLD;
7443
- const deferPostLoadRestore = this._shouldDeferPostLoadLineRestore(lodBand);
7357
+ this._shouldDeferPostLoadLineRestore(lodBand);
7444
7358
  const interactionHot =
7445
7359
  this._module?.isDraggingNode === true ||
7446
7360
  this._module?.isDraggingMultipleNodes === true ||
@@ -7449,7 +7363,7 @@
7449
7363
  this.isDragging === true;
7450
7364
  this._suspendLinesForInteraction = interactionHot;
7451
7365
  // ▼▼▼ [Fix] Respect manual loading state override ▼▼▼
7452
- const shouldDisable = disableByCount || this.isLoading || deferPostLoadRestore || this._suspendLinesForInteraction === true;
7366
+ const shouldDisable = disableByCount || this.isLoading || this._suspendLinesForInteraction === true;
7453
7367
  // ▲▲▲ [Fix] ▲▲▲
7454
7368
 
7455
7369
  if (this._disableLineRender !== shouldDisable) {
@@ -8037,8 +7951,8 @@
8037
7951
  this._deferLineRestoreUntil = shouldDeferLineRestore
8038
7952
  ? (performance.now() + POST_LOAD_LINE_RESTORE_DELAY_MS)
8039
7953
  : 0;
8040
- this._lineDetailsPatchPending = false;
8041
- this._disableLineRender = shouldDeferLineRestore; // Let the expensive silhouette rebuild happen on the next quiet frame.
7954
+ this._lineDetailsPatchPending = shouldDeferLineRestore;
7955
+ this._disableLineRender = false;
8042
7956
  this.lineDataDirty = true;
8043
7957
  this._residentRebuildPending = !hasResidentInstances;
8044
7958
  this._residentRebuildDeferredUntil = hasResidentInstances
@@ -0,0 +1,107 @@
1
+ (function initializeMindMapLodVideoPlaceholder(global) {
2
+ 'use strict';
3
+
4
+ function draw(options = {}) {
5
+ const slot = options.slot;
6
+ const canvas = options.canvas;
7
+ if (!slot || !canvas || typeof document === 'undefined') {
8
+ return false;
9
+ }
10
+
11
+ const ctx = canvas.getContext('2d', { alpha: false });
12
+ if (!ctx) {
13
+ return false;
14
+ }
15
+
16
+ const size = Math.max(1, Number(options.thumbnailSize || 1));
17
+ const columns = Math.max(1, Number(options.columns || 1));
18
+ const col = slot.slotIndex % columns;
19
+ const row = Math.floor(slot.slotIndex / columns);
20
+ const x = col * size;
21
+ const y = row * size;
22
+ const safeWidth = Math.max(1, Number(options.nodeWidth || 300));
23
+ const safeHeight = Math.max(1, Number(options.nodeHeight || 300));
24
+ const targetAspect = safeWidth / safeHeight;
25
+
26
+ try {
27
+ ctx.save();
28
+
29
+ const background = ctx.createLinearGradient(x, y, x, y + size);
30
+ background.addColorStop(0, '#26364d');
31
+ background.addColorStop(1, '#0f172a');
32
+ ctx.fillStyle = background;
33
+ ctx.fillRect(x, y, size, size);
34
+
35
+ const inset = 4;
36
+ ctx.strokeStyle = 'rgba(148, 163, 184, 0.58)';
37
+ ctx.lineWidth = 2;
38
+ ctx.strokeRect(x + inset, y + inset, size - inset * 2, size - inset * 2);
39
+
40
+ // Compensate for the square atlas tile stretching to the node aspect.
41
+ const radiusX = size * 0.19;
42
+ const radiusY = Math.min(size * 0.34, radiusX * Math.max(0.55, targetAspect));
43
+ const centerX = x + size * 0.5;
44
+ const centerY = y + size * 0.48;
45
+ ctx.beginPath();
46
+ ctx.ellipse(centerX, centerY, radiusX, radiusY, 0, 0, Math.PI * 2);
47
+ ctx.fillStyle = 'rgba(255, 255, 255, 0.18)';
48
+ ctx.fill();
49
+ ctx.strokeStyle = 'rgba(255, 255, 255, 0.62)';
50
+ ctx.lineWidth = 2;
51
+ ctx.stroke();
52
+
53
+ const triangleWidth = size * 0.13;
54
+ const triangleHeight = Math.min(size * 0.24, triangleWidth * Math.max(0.85, targetAspect));
55
+ ctx.beginPath();
56
+ ctx.moveTo(centerX - triangleWidth * 0.35, centerY - triangleHeight * 0.5);
57
+ ctx.lineTo(centerX + triangleWidth * 0.7, centerY);
58
+ ctx.lineTo(centerX - triangleWidth * 0.35, centerY + triangleHeight * 0.5);
59
+ ctx.closePath();
60
+ ctx.fillStyle = '#f8fafc';
61
+ ctx.fill();
62
+
63
+ ctx.fillStyle = 'rgba(226, 232, 240, 0.35)';
64
+ ctx.fillRect(x + size * 0.18, y + size * 0.82, size * 0.64, 2);
65
+ ctx.fillStyle = 'rgba(248, 250, 252, 0.78)';
66
+ ctx.fillRect(x + size * 0.18, y + size * 0.82, size * 0.2, 2);
67
+ ctx.restore();
68
+
69
+ if (options.texture) {
70
+ options.texture.needsUpdate = true;
71
+ }
72
+ return true;
73
+ } catch {
74
+ try { ctx.restore(); } catch { }
75
+ return false;
76
+ }
77
+ }
78
+
79
+ function getOrCreateAtlasSlot(renderer, nodeId) {
80
+ const normalizedId = String(nodeId || '').trim();
81
+ if (!renderer || !normalizedId) {
82
+ return null;
83
+ }
84
+
85
+ let slot = renderer.imageAtlasSlots.get(normalizedId) || null;
86
+ if (slot) {
87
+ return slot;
88
+ }
89
+
90
+ const slotIndex = renderer._allocateImageAtlasSlot();
91
+ if (slotIndex < 0) {
92
+ return null;
93
+ }
94
+
95
+ slot = {
96
+ slotIndex,
97
+ key: '',
98
+ uvRect: renderer._getImageAtlasUvRect(slotIndex),
99
+ ready: false,
100
+ unsupported: false
101
+ };
102
+ renderer.imageAtlasSlots.set(normalizedId, slot);
103
+ return slot;
104
+ }
105
+
106
+ global.MindMapLodVideoPlaceholder = Object.freeze({ draw, getOrCreateAtlasSlot });
107
+ })(window);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "MindExecution.Web",
3
3
  "resources": {
4
- "hash": "sha256-UZuh8tLI9D39IO7I9pnWdRUu1iZ6Vy2k6IjaF0olNBI=",
4
+ "hash": "sha256-k4lwKbjJ9g84j895BOdrv32i+eUyBH6giaTuE3n/Wks=",
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.mswl4wlkm9.dll": "MindExecution.Core.dll",
126
- "MindExecution.Kernel.zupeldfptg.dll": "MindExecution.Kernel.dll",
127
- "MindExecution.Plugins.Admin.hq0vyqnqtn.dll": "MindExecution.Plugins.Admin.dll",
128
- "MindExecution.Plugins.Business.pucw3o7rno.dll": "MindExecution.Plugins.Business.dll",
129
- "MindExecution.Plugins.Concept.557tzzkrrx.dll": "MindExecution.Plugins.Concept.dll",
130
- "MindExecution.Plugins.Directory.zh1ddg1fn6.dll": "MindExecution.Plugins.Directory.dll",
131
- "MindExecution.Plugins.PlanMaster.0z9pzynpu9.dll": "MindExecution.Plugins.PlanMaster.dll",
132
- "MindExecution.Plugins.YouTube.y8g77r54fa.dll": "MindExecution.Plugins.YouTube.dll",
133
- "MindExecution.Shared.1ymsdbwid2.dll": "MindExecution.Shared.dll",
134
- "MindExecution.Web.bb1txupuv0.dll": "MindExecution.Web.dll",
125
+ "MindExecution.Core.9h7x2mjn0w.dll": "MindExecution.Core.dll",
126
+ "MindExecution.Kernel.8te3ay3qs6.dll": "MindExecution.Kernel.dll",
127
+ "MindExecution.Plugins.Admin.imt43kggvu.dll": "MindExecution.Plugins.Admin.dll",
128
+ "MindExecution.Plugins.Business.26yozgyvan.dll": "MindExecution.Plugins.Business.dll",
129
+ "MindExecution.Plugins.Concept.k7fd1qvmfx.dll": "MindExecution.Plugins.Concept.dll",
130
+ "MindExecution.Plugins.Directory.88ng22x3y0.dll": "MindExecution.Plugins.Directory.dll",
131
+ "MindExecution.Plugins.PlanMaster.ll20yqlc09.dll": "MindExecution.Plugins.PlanMaster.dll",
132
+ "MindExecution.Plugins.YouTube.gqu5xngvav.dll": "MindExecution.Plugins.YouTube.dll",
133
+ "MindExecution.Shared.6ivt1fatt3.dll": "MindExecution.Shared.dll",
134
+ "MindExecution.Web.7tki7xqpt0.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.mswl4wlkm9.dll": "sha256-Ru09H3PbP8MVKjeEE5FLXnXm2LVpv421tfgliW/vN+M=",
280
- "MindExecution.Kernel.zupeldfptg.dll": "sha256-azMSlIBQcPcmVNI3eX+WxSnlXUQ/j/NDCtOKDp++owk=",
281
- "MindExecution.Plugins.Business.pucw3o7rno.dll": "sha256-EXxUy+DRMR51sHo+Q/QYuTh2Oz7/wxeKGhADP07KWcw=",
282
- "MindExecution.Plugins.Concept.557tzzkrrx.dll": "sha256-aTh3k+ncbMY0UZ0EWHp19SSWyHKIv8/MUW6AqDDmWW8=",
283
- "MindExecution.Plugins.PlanMaster.0z9pzynpu9.dll": "sha256-vHnd6UzPOrh35E0y1VPsWGj+Jl+Ze2rM9c6SYb+grpM=",
284
- "MindExecution.Shared.1ymsdbwid2.dll": "sha256-KRyO57WBUyFvSyLnDWqpBoELgMoiC+d6lyBMU9qz8PQ=",
285
- "MindExecution.Web.bb1txupuv0.dll": "sha256-57REdRLMDGVtyh6YhuvZe0XLVkNhrJHqLDnEDR45l9Q="
279
+ "MindExecution.Core.9h7x2mjn0w.dll": "sha256-4xFFMH5EUob9RXyohd+joGOoBTaarjSHyzY5kx3PRew=",
280
+ "MindExecution.Kernel.8te3ay3qs6.dll": "sha256-RND/bkb6ILP8m7z9LRP827D9tNbpZLIKIcrd5uzm8/w=",
281
+ "MindExecution.Plugins.Business.26yozgyvan.dll": "sha256-BhpTZtrJq26NpvKtYqHfYLKf2pJ93U0/R7WiPZMSedc=",
282
+ "MindExecution.Plugins.Concept.k7fd1qvmfx.dll": "sha256-QEcnhJgU5OshztWG/haRRIbg3NnykUuI0vEYkx2d9rU=",
283
+ "MindExecution.Plugins.PlanMaster.ll20yqlc09.dll": "sha256-KWcHEcj5l+QAGZXfxf7DCnyH1ACHwBwSVCgRReQPvyc=",
284
+ "MindExecution.Shared.6ivt1fatt3.dll": "sha256-Qp5kQWJBgQ7XXBot/X/66cV19jqiEwUFLd9b20Oamgw=",
285
+ "MindExecution.Web.7tki7xqpt0.dll": "sha256-JVtnGWCckZKnsid5V7G/01xTp3mnhCwxl112V16RTCg="
286
286
  },
287
287
  "lazyAssembly": {
288
- "MindExecution.Plugins.Admin.hq0vyqnqtn.dll": "sha256-eQ9YVFpetThf85xrcPIDWGPIHp2E3kzSVYmghtRFDFo=",
289
- "MindExecution.Plugins.Directory.zh1ddg1fn6.dll": "sha256-KXobDyCfuJf/4WJf7DAJaBPanfkPZHkdrCiSWwefotg=",
290
- "MindExecution.Plugins.YouTube.y8g77r54fa.dll": "sha256-/q58KqYenDmVBAYkDcB/Frnz97E/69zjgE++VeKa2Ug="
288
+ "MindExecution.Plugins.Admin.imt43kggvu.dll": "sha256-Bt7O2MFpDgzgB7CeUA4tB79feUGJiGvR7Zh4fUcGY+U=",
289
+ "MindExecution.Plugins.Directory.88ng22x3y0.dll": "sha256-mDOSQlu0aRlQ+9xQUmvcZAazdUkU4IFbPZ4yJjCegxs=",
290
+ "MindExecution.Plugins.YouTube.gqu5xngvav.dll": "sha256-KJg4t8mJDtKx8ElI66yv4H9Uw04BKb2g1d2RddYYhBk="
291
291
  }
292
292
  },
293
293
  "cacheBootResources": true,
@@ -579,7 +579,7 @@
579
579
  }
580
580
 
581
581
  const base = '_content/MindExecution.Shared/js/';
582
- const scriptVersion = '20260725-cold-mid-local-grid-v945';
582
+ const scriptVersion = '20260727-fixed-phase-grid-v950';
583
583
  const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
584
584
  console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
585
585
  const criticalScripts = [
@@ -606,6 +606,7 @@
606
606
  'mind-map-dnd.js',
607
607
  'mind-map-render-plan.js',
608
608
  'mind-map-normal-boundary-optimizer.js',
609
+ 'mind-map-lod-video-placeholder.js',
609
610
  'mind-map-lod-renderer.js',
610
611
  'mind-map-text-lod-system.js', // ??Text LOD ??좎럩???(??좎럩????좎럩?ゅ뜝???좎럩彛?
611
612
  'mind-map-core.js',
@@ -1,5 +1,5 @@
1
1
  self.assetsManifest = {
2
- "version": "1hca8nFH",
2
+ "version": "ILA9KwLq",
3
3
  "assets": [
4
4
  {
5
5
  "hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
@@ -38,7 +38,7 @@
38
38
  "url": "_content/MindExecution.Shared/css/admin-dashboard.css"
39
39
  },
40
40
  {
41
- "hash": "sha256-JJ0sAo6R5rSxQe7fZXhwotnLbgpQSGehoXSZlxlcaM4=",
41
+ "hash": "sha256-snMiHQh8m14Y676Ih6WcVbmCjR7RBn5Uekbs073cO4Q=",
42
42
  "url": "_content/MindExecution.Shared/css/app.css"
43
43
  },
44
44
  {
@@ -78,7 +78,7 @@
78
78
  "url": "_content/MindExecution.Shared/js/marked.min.js"
79
79
  },
80
80
  {
81
- "hash": "sha256-4eD2o9mTDubyz6mpk1N9GZ3MmCi09MaC923iYGCb348=",
81
+ "hash": "sha256-lPc30WYtXer88DsvAY5tCILPz0xFdfM0l3P+Ccw4wS8=",
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
83
83
  },
84
84
  {
@@ -110,7 +110,7 @@
110
110
  "url": "_content/MindExecution.Shared/js/mind-map-glow-shader.js"
111
111
  },
112
112
  {
113
- "hash": "sha256-yU6+cCQmi+iqU9PH1W17Kpgbn4t9MUsgMSRbByeJebw=",
113
+ "hash": "sha256-gyHNM8wV2/nOJXh4raQFoWqfMh5mgd7xomr7BRf+UbQ=",
114
114
  "url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
115
115
  },
116
116
  {
@@ -118,9 +118,13 @@
118
118
  "url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
119
119
  },
120
120
  {
121
- "hash": "sha256-I07Vo+UaV2ej2xI0H0Rd3t6oagbgg1Yhime3SMHEDiU=",
121
+ "hash": "sha256-2s3onLoT9d7reE9vNyoHelc1PtXeHxfqYogeLE4QlT4=",
122
122
  "url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
123
123
  },
124
+ {
125
+ "hash": "sha256-Tb6u73+LehbMAmg9FQJkDz4G1XmhHdrsaQqWDX5AwEk=",
126
+ "url": "_content/MindExecution.Shared/js/mind-map-lod-video-placeholder.js"
127
+ },
124
128
  {
125
129
  "hash": "sha256-6rVMf3gmpiBdiiGtus8cws2RA7Ppcf82+XZ8a5QRF2s=",
126
130
  "url": "_content/MindExecution.Shared/js/mind-map-logic-workers.js"
@@ -426,44 +430,44 @@
426
430
  "url": "_framework/MimeMapping.og9ys58ylm.dll"
427
431
  },
428
432
  {
429
- "hash": "sha256-Ru09H3PbP8MVKjeEE5FLXnXm2LVpv421tfgliW/vN+M=",
430
- "url": "_framework/MindExecution.Core.mswl4wlkm9.dll"
433
+ "hash": "sha256-4xFFMH5EUob9RXyohd+joGOoBTaarjSHyzY5kx3PRew=",
434
+ "url": "_framework/MindExecution.Core.9h7x2mjn0w.dll"
431
435
  },
432
436
  {
433
- "hash": "sha256-azMSlIBQcPcmVNI3eX+WxSnlXUQ/j/NDCtOKDp++owk=",
434
- "url": "_framework/MindExecution.Kernel.zupeldfptg.dll"
437
+ "hash": "sha256-RND/bkb6ILP8m7z9LRP827D9tNbpZLIKIcrd5uzm8/w=",
438
+ "url": "_framework/MindExecution.Kernel.8te3ay3qs6.dll"
435
439
  },
436
440
  {
437
- "hash": "sha256-eQ9YVFpetThf85xrcPIDWGPIHp2E3kzSVYmghtRFDFo=",
438
- "url": "_framework/MindExecution.Plugins.Admin.hq0vyqnqtn.dll"
441
+ "hash": "sha256-Bt7O2MFpDgzgB7CeUA4tB79feUGJiGvR7Zh4fUcGY+U=",
442
+ "url": "_framework/MindExecution.Plugins.Admin.imt43kggvu.dll"
439
443
  },
440
444
  {
441
- "hash": "sha256-EXxUy+DRMR51sHo+Q/QYuTh2Oz7/wxeKGhADP07KWcw=",
442
- "url": "_framework/MindExecution.Plugins.Business.pucw3o7rno.dll"
445
+ "hash": "sha256-BhpTZtrJq26NpvKtYqHfYLKf2pJ93U0/R7WiPZMSedc=",
446
+ "url": "_framework/MindExecution.Plugins.Business.26yozgyvan.dll"
443
447
  },
444
448
  {
445
- "hash": "sha256-aTh3k+ncbMY0UZ0EWHp19SSWyHKIv8/MUW6AqDDmWW8=",
446
- "url": "_framework/MindExecution.Plugins.Concept.557tzzkrrx.dll"
449
+ "hash": "sha256-QEcnhJgU5OshztWG/haRRIbg3NnykUuI0vEYkx2d9rU=",
450
+ "url": "_framework/MindExecution.Plugins.Concept.k7fd1qvmfx.dll"
447
451
  },
448
452
  {
449
- "hash": "sha256-KXobDyCfuJf/4WJf7DAJaBPanfkPZHkdrCiSWwefotg=",
450
- "url": "_framework/MindExecution.Plugins.Directory.zh1ddg1fn6.dll"
453
+ "hash": "sha256-mDOSQlu0aRlQ+9xQUmvcZAazdUkU4IFbPZ4yJjCegxs=",
454
+ "url": "_framework/MindExecution.Plugins.Directory.88ng22x3y0.dll"
451
455
  },
452
456
  {
453
- "hash": "sha256-vHnd6UzPOrh35E0y1VPsWGj+Jl+Ze2rM9c6SYb+grpM=",
454
- "url": "_framework/MindExecution.Plugins.PlanMaster.0z9pzynpu9.dll"
457
+ "hash": "sha256-KWcHEcj5l+QAGZXfxf7DCnyH1ACHwBwSVCgRReQPvyc=",
458
+ "url": "_framework/MindExecution.Plugins.PlanMaster.ll20yqlc09.dll"
455
459
  },
456
460
  {
457
- "hash": "sha256-/q58KqYenDmVBAYkDcB/Frnz97E/69zjgE++VeKa2Ug=",
458
- "url": "_framework/MindExecution.Plugins.YouTube.y8g77r54fa.dll"
461
+ "hash": "sha256-KJg4t8mJDtKx8ElI66yv4H9Uw04BKb2g1d2RddYYhBk=",
462
+ "url": "_framework/MindExecution.Plugins.YouTube.gqu5xngvav.dll"
459
463
  },
460
464
  {
461
- "hash": "sha256-KRyO57WBUyFvSyLnDWqpBoELgMoiC+d6lyBMU9qz8PQ=",
462
- "url": "_framework/MindExecution.Shared.1ymsdbwid2.dll"
465
+ "hash": "sha256-Qp5kQWJBgQ7XXBot/X/66cV19jqiEwUFLd9b20Oamgw=",
466
+ "url": "_framework/MindExecution.Shared.6ivt1fatt3.dll"
463
467
  },
464
468
  {
465
- "hash": "sha256-57REdRLMDGVtyh6YhuvZe0XLVkNhrJHqLDnEDR45l9Q=",
466
- "url": "_framework/MindExecution.Web.bb1txupuv0.dll"
469
+ "hash": "sha256-JVtnGWCckZKnsid5V7G/01xTp3mnhCwxl112V16RTCg=",
470
+ "url": "_framework/MindExecution.Web.7tki7xqpt0.dll"
467
471
  },
468
472
  {
469
473
  "hash": "sha256-IsZJ91/OW+fHzNqIgEc7Y072ns8z9dGritiSyvR9Wgc=",
@@ -782,7 +786,7 @@
782
786
  "url": "_framework/Websocket.Client.vapounvmnl.dll"
783
787
  },
784
788
  {
785
- "hash": "sha256-y+apDynf1Lx2swoTt7EoIRlZ26seLNBsgZjBYUjkSc8=",
789
+ "hash": "sha256-tnP0tykhBy53WYU4kCLMGRKT3Ta4jiR9a3SemKUepoA=",
786
790
  "url": "_framework/blazor.boot.json"
787
791
  },
788
792
  {
@@ -842,7 +846,7 @@
842
846
  "url": "icon-512.png"
843
847
  },
844
848
  {
845
- "hash": "sha256-/9v1YExJbRhqbwfDeyeXT/IrmqGDhzowehpIIwAJc+c=",
849
+ "hash": "sha256-c2AIozfD07OWnpUIWdjEbUqRQ1OhNnipQpYAVd7zwC0=",
846
850
  "url": "index.html"
847
851
  },
848
852
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: 1hca8nFH */
1
+ /* Manifest version: ILA9KwLq */
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