@mindexec/cli 0.2.441 → 0.2.442

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 (45) hide show
  1. package/package.json +1 -1
  2. package/remote-fast/osx-arm64/MacScreenCaptureKitH264.swift +339 -0
  3. package/remote-fast/osx-arm64/MacSystemAudioCapture.swift +214 -0
  4. package/remote-fast/osx-arm64/UnixRawCaptureHelper.mjs +80 -0
  5. package/remote-fast/osx-arm64/livedesk-raw-capture-resampler.mjs +73 -0
  6. package/remote-fast/osx-arm64/mindexec-remote-fast.dll +0 -0
  7. package/remote-fast/osx-x64/MacScreenCaptureKitH264.swift +339 -0
  8. package/remote-fast/osx-x64/MacSystemAudioCapture.swift +214 -0
  9. package/remote-fast/osx-x64/UnixRawCaptureHelper.mjs +80 -0
  10. package/remote-fast/osx-x64/livedesk-raw-capture-resampler.mjs +73 -0
  11. package/remote-fast/osx-x64/mindexec-remote-fast.dll +0 -0
  12. package/remote-fast/win-x64/NAudio.Asio.dll +0 -0
  13. package/remote-fast/win-x64/NAudio.Core.dll +0 -0
  14. package/remote-fast/win-x64/NAudio.Midi.dll +0 -0
  15. package/remote-fast/win-x64/NAudio.Wasapi.dll +0 -0
  16. package/remote-fast/win-x64/NAudio.WinForms.dll +0 -0
  17. package/remote-fast/win-x64/NAudio.WinMM.dll +0 -0
  18. package/remote-fast/win-x64/NAudio.dll +0 -0
  19. package/remote-fast/win-x64/SharpGen.Runtime.COM.dll +0 -0
  20. package/remote-fast/win-x64/SharpGen.Runtime.dll +0 -0
  21. package/remote-fast/win-x64/Vortice.DXGI.dll +0 -0
  22. package/remote-fast/win-x64/Vortice.Direct3D11.dll +0 -0
  23. package/remote-fast/win-x64/Vortice.DirectX.dll +0 -0
  24. package/remote-fast/win-x64/Vortice.Mathematics.dll +0 -0
  25. package/remote-fast/win-x64/mindexec-remote-fast.deps.json +238 -0
  26. package/remote-fast/win-x64/mindexec-remote-fast.dll +0 -0
  27. package/remote-fast/win-x64/mindexec-remote-fast.exe +0 -0
  28. package/remote-hub.js +42 -3
  29. package/server.js +22 -6
  30. package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +51 -9
  31. package/wwwroot/_content/MindExecution.Shared/js/mind-map-remote-codecs.js +126 -0
  32. package/wwwroot/_framework/{MindExecution.Core.808jj176e1.dll → MindExecution.Core.nxjlewduna.dll} +0 -0
  33. package/wwwroot/_framework/{MindExecution.Kernel.75hxk08tt0.dll → MindExecution.Kernel.vrfi63yg9f.dll} +0 -0
  34. package/wwwroot/_framework/{MindExecution.Plugins.Admin.0zkmk8wahq.dll → MindExecution.Plugins.Admin.1rcwhdxl0r.dll} +0 -0
  35. package/wwwroot/_framework/{MindExecution.Plugins.Business.vyw3769hrw.dll → MindExecution.Plugins.Business.rx0eieg51y.dll} +0 -0
  36. package/wwwroot/_framework/{MindExecution.Plugins.Concept.cvmglrxsjb.dll → MindExecution.Plugins.Concept.zzczjzhvk1.dll} +0 -0
  37. package/wwwroot/_framework/{MindExecution.Plugins.Directory.jtw9q1dm9n.dll → MindExecution.Plugins.Directory.bsorcntiwp.dll} +0 -0
  38. package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.8hmc6ps1ux.dll → MindExecution.Plugins.PlanMaster.i5j9t4f1jf.dll} +0 -0
  39. package/wwwroot/_framework/{MindExecution.Plugins.YouTube.xb9sou9ox0.dll → MindExecution.Plugins.YouTube.1mpn9satft.dll} +0 -0
  40. package/wwwroot/_framework/{MindExecution.Shared.pqab76cjb6.dll → MindExecution.Shared.mpi1gzau9b.dll} +0 -0
  41. package/wwwroot/_framework/{MindExecution.Web.mc24u4bzol.dll → MindExecution.Web.nxykcyxd02.dll} +0 -0
  42. package/wwwroot/_framework/blazor.boot.json +21 -21
  43. package/wwwroot/index.html +2 -1
  44. package/wwwroot/service-worker-assets.js +28 -24
  45. package/wwwroot/service-worker.js +1 -1
@@ -14891,9 +14891,9 @@
14891
14891
  const REMOTE_FLEET_MONITOR_REFRESH_MS = 10000;
14892
14892
  const REMOTE_FLEET_EMPTY_MONITOR_REFRESH_MS = 2500;
14893
14893
  const REMOTE_FLEET_LIVE_REFRESH_MS = 30000;
14894
- const REMOTE_FLEET_MONITOR_LIVE_FPS = 12;
14894
+ const REMOTE_FLEET_MONITOR_LIVE_FPS = 20;
14895
14895
  const REMOTE_FLEET_LIVE_FRAME_REFRESH_MS = Math.round(1000 / REMOTE_FLEET_MONITOR_LIVE_FPS);
14896
- const REMOTE_FLEET_CONTROL_LIVE_FPS = 20;
14896
+ const REMOTE_FLEET_CONTROL_LIVE_FPS = 30;
14897
14897
  const REMOTE_FLEET_CONTROL_FRAME_REFRESH_MS = Math.round(1000 / REMOTE_FLEET_CONTROL_LIVE_FPS);
14898
14898
  const REMOTE_FLEET_CONTROL_INPUT_MOVE_MS = 16;
14899
14899
  const REMOTE_FLEET_CONTROL_INPUT_QUEUE_LIMIT = 64;
@@ -15667,7 +15667,8 @@
15667
15667
  Number(liveOptions.maxWidth || 0) || 0,
15668
15668
  Number(liveOptions.maxHeight || 0) || 0,
15669
15669
  Number(liveOptions.quality || 0) || 0,
15670
- String(liveOptions.mode || '')
15670
+ String(liveOptions.mode || ''),
15671
+ String(liveOptions.streamPurpose || 'wall')
15671
15672
  ].join('|');
15672
15673
  const key = `${deviceIds.join('\n')}::${optionKey}`;
15673
15674
  const now = getRemoteFleetFrameNow();
@@ -15692,7 +15693,9 @@
15692
15693
  maxWidth: liveOptions.maxWidth,
15693
15694
  maxHeight: liveOptions.maxHeight,
15694
15695
  quality: liveOptions.quality,
15695
- mode: liveOptions.mode
15696
+ mode: liveOptions.mode,
15697
+ frameMode: liveOptions.mode,
15698
+ streamPurpose: liveOptions.streamPurpose || 'wall'
15696
15699
  }));
15697
15700
  return true;
15698
15701
  }
@@ -15952,7 +15955,8 @@
15952
15955
  maxWidth: Number(options.maxWidth || 960) || 960,
15953
15956
  maxHeight: Number(options.maxHeight || 540) || 540,
15954
15957
  quality: Number(options.quality || 60) || 60,
15955
- mode: String(options.mode || 'remote-fast')
15958
+ mode: String(options.mode || 'mode3-h264-hw'),
15959
+ streamPurpose: String(options.streamPurpose || 'wall')
15956
15960
  };
15957
15961
  bodyView._remoteFleetBinaryFrameSession = session;
15958
15962
  primeRemoteFleetRenderedFrameSurfaces(bodyView, 'ws-start');
@@ -17186,6 +17190,20 @@
17186
17190
  }
17187
17191
 
17188
17192
  function applyRemoteFleetFramePatchToPreview(preview, frame) {
17193
+ if (frame?._remoteFleetBinaryFrame === true
17194
+ && frame?._remoteFleetPayloadBlob
17195
+ && String(frame.codec || '').toLowerCase().includes('h264')
17196
+ && window.MindExecRemoteCodecs?.decodeH264Frame) {
17197
+ const canvas = ensureRemoteFleetFrameCanvas(preview);
17198
+ if (canvas) {
17199
+ canvas.style.display = 'block';
17200
+ preview.querySelector?.('img[data-remote-fleet-frame-image="true"]')?.style.setProperty('display', 'none');
17201
+ window.MindExecRemoteCodecs.decodeH264Frame(canvas, frame).catch?.(() => undefined);
17202
+ preview.dataset.remoteFleetFrameKind = String(frame.kind || 'live').toLowerCase();
17203
+ preview.dataset.remoteFleetFrameSeq = String(frame.frameSeq || 0);
17204
+ return true;
17205
+ }
17206
+ }
17189
17207
  if (frame?._remoteFleetBinaryFrame === true && frame?._remoteFleetPayloadBlob) {
17190
17208
  preview._remoteFleetPendingImageFrame = null;
17191
17209
  delete preview.dataset.remoteFleetPendingImageKind;
@@ -17415,7 +17433,8 @@
17415
17433
  maxWidth: 1280,
17416
17434
  maxHeight: 720,
17417
17435
  quality: 65,
17418
- mode: 'remote-fast-control'
17436
+ mode: 'mode3-h264-hw',
17437
+ streamPurpose: 'control'
17419
17438
  })) {
17420
17439
  return false;
17421
17440
  }
@@ -17438,7 +17457,8 @@
17438
17457
  maxWidth: 1280,
17439
17458
  maxHeight: 720,
17440
17459
  quality: 65,
17441
- mode: 'remote-fast-control'
17460
+ mode: 'mode3-h264-hw',
17461
+ streamPurpose: 'control'
17442
17462
  };
17443
17463
  controlSession.binaryFrameSession = binarySession;
17444
17464
  controlSession.binaryFramePreferred = true;
@@ -17514,6 +17534,22 @@
17514
17534
  session.lastControlFrameSeq = frameSeq;
17515
17535
  }
17516
17536
 
17537
+ if (frame._remoteFleetPayloadBlob
17538
+ && String(frame.codec || '').toLowerCase().includes('h264')
17539
+ && window.MindExecRemoteCodecs?.decodeH264Frame) {
17540
+ const painted = await window.MindExecRemoteCodecs.decodeH264Frame(session.canvas, frame);
17541
+ if (painted && session.active) {
17542
+ session.canvas.dataset.remoteFleetFrameKind = 'live';
17543
+ session.canvas.dataset.remoteFleetFrameSeq = String(frameSeq || 0);
17544
+ session.canvas.style.display = 'block';
17545
+ session.lastControlFrameAt = Date.now();
17546
+ session.status.textContent = `Control ${REMOTE_FLEET_CONTROL_LIVE_FPS}fps`;
17547
+ session.placeholder?.remove?.();
17548
+ session.placeholder = null;
17549
+ }
17550
+ return painted;
17551
+ }
17552
+
17517
17553
  let bitmap = null;
17518
17554
  try {
17519
17555
  if (frame._remoteFleetPayloadBlob && typeof createImageBitmap === 'function') {
@@ -17784,11 +17820,16 @@
17784
17820
  }
17785
17821
 
17786
17822
  const input = createRemoteFleetControlInput(session, payload);
17823
+ const inputSeq = Number(session.inputSeq || 0) + 1;
17824
+ session.inputSeq = inputSeq;
17825
+ input.inputSeq = inputSeq;
17826
+ input.requestAck = String(input.type || '').toLowerCase() !== 'pointermove' || inputSeq % 6 === 0;
17787
17827
  const envelope = {
17788
17828
  type: 'input',
17789
17829
  nodeId: session.nodeId,
17790
17830
  deviceId: session.deviceId,
17791
17831
  requestId: `input-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`,
17832
+ fireAndForget: input.requestAck !== true,
17792
17833
  input
17793
17834
  };
17794
17835
 
@@ -18315,7 +18356,7 @@
18315
18356
  maxWidth: 1280,
18316
18357
  maxHeight: 720,
18317
18358
  quality: 65,
18318
- mode: 'remote-fast-control-node'
18359
+ mode: 'mode3-h264-hw'
18319
18360
  });
18320
18361
  attachRemoteFleetControlBinaryFrameSession(session, bodyView);
18321
18362
  stage.focus?.({ preventScroll: true });
@@ -20676,7 +20717,8 @@
20676
20717
  maxWidth: 960,
20677
20718
  maxHeight: 540,
20678
20719
  quality: 60,
20679
- mode: 'remote-fast'
20720
+ mode: 'mode3-h264-hw',
20721
+ streamPurpose: 'wall'
20680
20722
  });
20681
20723
  if (!binaryFrameSocketStarted) {
20682
20724
  window.RuntimeTrace?.emit?.('remote.frame.wsUnavailable', {
@@ -0,0 +1,126 @@
1
+ (function () {
2
+ 'use strict';
3
+
4
+ const decoderByCanvas = new WeakMap();
5
+ const MAX_DECODE_QUEUE = 3;
6
+
7
+ function emit(type, data) {
8
+ window.RuntimeTrace?.emit?.(type, data);
9
+ }
10
+
11
+ function getDecoderState(canvas) {
12
+ let state = decoderByCanvas.get(canvas);
13
+ if (state) return state;
14
+ state = {
15
+ decoder: null,
16
+ generation: 0,
17
+ width: 0,
18
+ height: 0,
19
+ pending: 0,
20
+ lastSeq: 0,
21
+ lastPaintAt: 0
22
+ };
23
+ decoderByCanvas.set(canvas, state);
24
+ return state;
25
+ }
26
+
27
+ function closeDecoder(state) {
28
+ try { state.decoder?.close?.(); } catch { /* stale decoder */ }
29
+ state.decoder = null;
30
+ state.pending = 0;
31
+ }
32
+
33
+ function ensureDecoder(canvas, frame, state) {
34
+ if (typeof VideoDecoder !== 'function' || typeof EncodedVideoChunk !== 'function') {
35
+ return null;
36
+ }
37
+
38
+ const width = Number(frame.width || 0) || canvas.width || 1920;
39
+ const height = Number(frame.height || 0) || canvas.height || 1080;
40
+ const key = `${width}x${height}`;
41
+ if (state.decoder && state.width === width && state.height === height) {
42
+ return state.decoder;
43
+ }
44
+
45
+ closeDecoder(state);
46
+ state.width = width;
47
+ state.height = height;
48
+ const generation = ++state.generation;
49
+ const decoder = new VideoDecoder({
50
+ output(videoFrame) {
51
+ if (generation !== state.generation) {
52
+ videoFrame.close?.();
53
+ return;
54
+ }
55
+ try {
56
+ canvas.width = videoFrame.displayWidth || width;
57
+ canvas.height = videoFrame.displayHeight || height;
58
+ const context = canvas.getContext('2d', { alpha: false, desynchronized: true });
59
+ context?.drawImage(videoFrame, 0, 0, canvas.width, canvas.height);
60
+ state.lastPaintAt = performance.now();
61
+ emit('remote.h264.paint', { frameSeq: state.lastSeq, width: canvas.width, height: canvas.height });
62
+ } finally {
63
+ videoFrame.close?.();
64
+ }
65
+ },
66
+ error(error) {
67
+ emit('remote.h264.decodeFailed', { error: error?.message || String(error || ''), frameSeq: state.lastSeq });
68
+ closeDecoder(state);
69
+ }
70
+ });
71
+ try {
72
+ decoder.configure({
73
+ codec: String(frame.codec || 'avc1.42E01E'),
74
+ codedWidth: width,
75
+ codedHeight: height,
76
+ hardwareAcceleration: 'prefer-software',
77
+ optimizeForLatency: true,
78
+ avc: { format: String(frame.h264Format || 'annexb').toLowerCase() === 'avc' ? 'avc' : 'annexb' }
79
+ });
80
+ } catch (error) {
81
+ emit('remote.h264.configureFailed', { key, error: error?.message || String(error || '') });
82
+ try { decoder.close(); } catch { /* ignore */ }
83
+ return null;
84
+ }
85
+ state.decoder = decoder;
86
+ return decoder;
87
+ }
88
+
89
+ async function decode(canvas, frame) {
90
+ const payload = frame?._remoteFleetPayloadBlob;
91
+ if (!canvas || !payload || !String(frame?.codec || '').toLowerCase().includes('h264')) {
92
+ return false;
93
+ }
94
+ const state = getDecoderState(canvas);
95
+ const seq = Number(frame.streamFrameSeq || frame.frameSeq || 0) || 0;
96
+ if (seq > 0 && seq <= state.lastSeq) return true;
97
+ state.lastSeq = seq;
98
+ const decoder = ensureDecoder(canvas, frame, state);
99
+ if (!decoder || decoder.state === 'closed') return false;
100
+ if (state.pending >= MAX_DECODE_QUEUE) {
101
+ emit('remote.h264.drop', { reason: 'decode-queue', frameSeq: seq });
102
+ return true;
103
+ }
104
+ state.pending += 1;
105
+ try {
106
+ const bytes = new Uint8Array(await payload.arrayBuffer());
107
+ if (!bytes.length) return false;
108
+ const timestamp = Number(frame.timestampUs || 0) || Math.round(performance.now() * 1000);
109
+ decoder.decode(new EncodedVideoChunk({
110
+ type: frame.isKeyFrame === true || String(frame.chunkType || '').toLowerCase() === 'key' ? 'key' : 'delta',
111
+ timestamp,
112
+ duration: Number(frame.durationUs || 0) || undefined,
113
+ data: bytes
114
+ }));
115
+ return true;
116
+ } catch (error) {
117
+ emit('remote.h264.decodeSubmitFailed', { error: error?.message || String(error || ''), frameSeq: seq });
118
+ closeDecoder(state);
119
+ return false;
120
+ } finally {
121
+ state.pending = Math.max(0, state.pending - 1);
122
+ }
123
+ }
124
+
125
+ window.MindExecRemoteCodecs = Object.freeze({ decodeH264Frame: decode });
126
+ })();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "MindExecution.Web",
3
3
  "resources": {
4
- "hash": "sha256-cyYstxxu9/Yn3zgm26aHsm55DzzVHsZnB734jEONmCw=",
4
+ "hash": "sha256-WNzAmWuVhn9JyBiHwwIttruk/GbsVNnakpghIldcLg8=",
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.808jj176e1.dll": "MindExecution.Core.dll",
126
- "MindExecution.Kernel.75hxk08tt0.dll": "MindExecution.Kernel.dll",
127
- "MindExecution.Plugins.Admin.0zkmk8wahq.dll": "MindExecution.Plugins.Admin.dll",
128
- "MindExecution.Plugins.Business.vyw3769hrw.dll": "MindExecution.Plugins.Business.dll",
129
- "MindExecution.Plugins.Concept.cvmglrxsjb.dll": "MindExecution.Plugins.Concept.dll",
130
- "MindExecution.Plugins.Directory.jtw9q1dm9n.dll": "MindExecution.Plugins.Directory.dll",
131
- "MindExecution.Plugins.PlanMaster.8hmc6ps1ux.dll": "MindExecution.Plugins.PlanMaster.dll",
132
- "MindExecution.Plugins.YouTube.xb9sou9ox0.dll": "MindExecution.Plugins.YouTube.dll",
133
- "MindExecution.Shared.pqab76cjb6.dll": "MindExecution.Shared.dll",
134
- "MindExecution.Web.mc24u4bzol.dll": "MindExecution.Web.dll",
125
+ "MindExecution.Core.nxjlewduna.dll": "MindExecution.Core.dll",
126
+ "MindExecution.Kernel.vrfi63yg9f.dll": "MindExecution.Kernel.dll",
127
+ "MindExecution.Plugins.Admin.1rcwhdxl0r.dll": "MindExecution.Plugins.Admin.dll",
128
+ "MindExecution.Plugins.Business.rx0eieg51y.dll": "MindExecution.Plugins.Business.dll",
129
+ "MindExecution.Plugins.Concept.zzczjzhvk1.dll": "MindExecution.Plugins.Concept.dll",
130
+ "MindExecution.Plugins.Directory.bsorcntiwp.dll": "MindExecution.Plugins.Directory.dll",
131
+ "MindExecution.Plugins.PlanMaster.i5j9t4f1jf.dll": "MindExecution.Plugins.PlanMaster.dll",
132
+ "MindExecution.Plugins.YouTube.1mpn9satft.dll": "MindExecution.Plugins.YouTube.dll",
133
+ "MindExecution.Shared.mpi1gzau9b.dll": "MindExecution.Shared.dll",
134
+ "MindExecution.Web.nxykcyxd02.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.808jj176e1.dll": "sha256-uMmP6rEgsbuwnsZ6Cnxrpmzio4usBtoJERfkOvz25iY=",
280
- "MindExecution.Kernel.75hxk08tt0.dll": "sha256-9db04cSFp4z4iblswVb0UWgpjeluVqZUa7g27Oj3p40=",
281
- "MindExecution.Plugins.Business.vyw3769hrw.dll": "sha256-WSc1w7WNOhnmzD3DcIgg4PCYzHeeU5rc7KK7eLgsu+M=",
282
- "MindExecution.Plugins.Concept.cvmglrxsjb.dll": "sha256-yGhEvwMzCTsmRB6D80lOSfOUWCegs7b/GRvXEdIss5s=",
283
- "MindExecution.Plugins.PlanMaster.8hmc6ps1ux.dll": "sha256-NDlttv/8WOvjy9hud+07v5ul3ZJhf2n/cf2CgMfhBnA=",
284
- "MindExecution.Shared.pqab76cjb6.dll": "sha256-3zUucQiJHN3pl4KBqsG0D0j054ojYss5D69/xCNTngY=",
285
- "MindExecution.Web.mc24u4bzol.dll": "sha256-5sJydtlQZKVkPUzMIYPO5q2iWWpstxPNVn6Kyk3fBrk="
279
+ "MindExecution.Core.nxjlewduna.dll": "sha256-K/aYKYR7u21eWdPhsuyT3DfAcldItQ9fUJDpyAW1Yk8=",
280
+ "MindExecution.Kernel.vrfi63yg9f.dll": "sha256-pQ3AG4I0yHOE+LjWf41pPTzD6WAPx5QEVQR99tgmjv8=",
281
+ "MindExecution.Plugins.Business.rx0eieg51y.dll": "sha256-wXky9gfkYuS9LpiAJcaHL2ySg388QTlafZ7dDYaYGkc=",
282
+ "MindExecution.Plugins.Concept.zzczjzhvk1.dll": "sha256-caSJdsMUA/y2XoLlC69Ml7LVPyEklu9iUqK8LbLH/Ac=",
283
+ "MindExecution.Plugins.PlanMaster.i5j9t4f1jf.dll": "sha256-NsaH6mfDGUtq96FRS/yR+b5QyLzjVWublyCQBKugpss=",
284
+ "MindExecution.Shared.mpi1gzau9b.dll": "sha256-Bk/J98QCHrurXfAfiETiavqv5g5jXQ73yvEdYibuIrU=",
285
+ "MindExecution.Web.nxykcyxd02.dll": "sha256-JW4hqFR8NT2yFKIvMflIhM8Wks9Dec4w+0ofv69tU6w="
286
286
  },
287
287
  "lazyAssembly": {
288
- "MindExecution.Plugins.Admin.0zkmk8wahq.dll": "sha256-VLiwzLIr+tjKr6+yQfhMVQHq2Yx26QenAkC092+fEdw=",
289
- "MindExecution.Plugins.Directory.jtw9q1dm9n.dll": "sha256-Z1x+H7sTj3w9XjWxfqGsd3Jv+qlzwQxAur6pJIP4l20=",
290
- "MindExecution.Plugins.YouTube.xb9sou9ox0.dll": "sha256-Pf4IWNwd62loUPGvRnJ8ZgJ1X/h87tNDeBwS8ajlwyk="
288
+ "MindExecution.Plugins.Admin.1rcwhdxl0r.dll": "sha256-jV0N8WevIxIidWNinjH1vZ+NS+eKshBtlZpvb6vCfmg=",
289
+ "MindExecution.Plugins.Directory.bsorcntiwp.dll": "sha256-O07lrIPzxWQRivTDifZBsSoG+ZMptwdu2Ey2e9sF0M0=",
290
+ "MindExecution.Plugins.YouTube.1mpn9satft.dll": "sha256-l6UnB6LB9UHscjF/q5j8F2fKCunQ63w6mkwEEuWK3tg="
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 = '20260713-selection-video-playback-v935';
582
+ const scriptVersion = '20260717-livedesk-h264-transport-v936';
583
583
  const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
584
584
  console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
585
585
  const criticalScripts = [
@@ -594,6 +594,7 @@
594
594
  'mind-map-texture-factory.js',
595
595
  'mind-map-glow-shader.js', // ??SDF Glow (no textures, GPU only)
596
596
  'mind-map-video-playback-controls.js',
597
+ 'mind-map-remote-codecs.js',
597
598
  'mind-map-css3d-manager.js',
598
599
  'mind-map-object-manager.js',
599
600
  'mind-map-pipeline.js',
@@ -1,5 +1,5 @@
1
1
  self.assetsManifest = {
2
- "version": "VUZJrplE",
2
+ "version": "Zf4S1may",
3
3
  "assets": [
4
4
  {
5
5
  "hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
@@ -86,7 +86,7 @@
86
86
  "url": "_content/MindExecution.Shared/js/mind-map-core.js.backup"
87
87
  },
88
88
  {
89
- "hash": "sha256-V3om7yYRGnEVFwXSaNqT+tzvnLAFzHpQN5+M0RahIxU=",
89
+ "hash": "sha256-GFA+cRQbVmpUXxFLk/Zl7kBOUgISlLjY6DdZ7N+Yx8A=",
90
90
  "url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
91
91
  },
92
92
  {
@@ -153,6 +153,10 @@
153
153
  "hash": "sha256-QvC3R24/3hjEyEkuxhKD2yA47gscsPoysFuaQJ6hhLQ=",
154
154
  "url": "_content/MindExecution.Shared/js/mind-map-pipeline.js"
155
155
  },
156
+ {
157
+ "hash": "sha256-xPo+OHw25ABSIGVNplBuKGRyqjJHsSLHGz2Ra3FwI24=",
158
+ "url": "_content/MindExecution.Shared/js/mind-map-remote-codecs.js"
159
+ },
156
160
  {
157
161
  "hash": "sha256-cLpfBu1xGaz6r3erSnxPGrqPlfldqcMbV/taYkFtnlE=",
158
162
  "url": "_content/MindExecution.Shared/js/mind-map-render-plan.js"
@@ -418,44 +422,44 @@
418
422
  "url": "_framework/MimeMapping.og9ys58ylm.dll"
419
423
  },
420
424
  {
421
- "hash": "sha256-uMmP6rEgsbuwnsZ6Cnxrpmzio4usBtoJERfkOvz25iY=",
422
- "url": "_framework/MindExecution.Core.808jj176e1.dll"
425
+ "hash": "sha256-K/aYKYR7u21eWdPhsuyT3DfAcldItQ9fUJDpyAW1Yk8=",
426
+ "url": "_framework/MindExecution.Core.nxjlewduna.dll"
423
427
  },
424
428
  {
425
- "hash": "sha256-9db04cSFp4z4iblswVb0UWgpjeluVqZUa7g27Oj3p40=",
426
- "url": "_framework/MindExecution.Kernel.75hxk08tt0.dll"
429
+ "hash": "sha256-pQ3AG4I0yHOE+LjWf41pPTzD6WAPx5QEVQR99tgmjv8=",
430
+ "url": "_framework/MindExecution.Kernel.vrfi63yg9f.dll"
427
431
  },
428
432
  {
429
- "hash": "sha256-VLiwzLIr+tjKr6+yQfhMVQHq2Yx26QenAkC092+fEdw=",
430
- "url": "_framework/MindExecution.Plugins.Admin.0zkmk8wahq.dll"
433
+ "hash": "sha256-jV0N8WevIxIidWNinjH1vZ+NS+eKshBtlZpvb6vCfmg=",
434
+ "url": "_framework/MindExecution.Plugins.Admin.1rcwhdxl0r.dll"
431
435
  },
432
436
  {
433
- "hash": "sha256-WSc1w7WNOhnmzD3DcIgg4PCYzHeeU5rc7KK7eLgsu+M=",
434
- "url": "_framework/MindExecution.Plugins.Business.vyw3769hrw.dll"
437
+ "hash": "sha256-wXky9gfkYuS9LpiAJcaHL2ySg388QTlafZ7dDYaYGkc=",
438
+ "url": "_framework/MindExecution.Plugins.Business.rx0eieg51y.dll"
435
439
  },
436
440
  {
437
- "hash": "sha256-yGhEvwMzCTsmRB6D80lOSfOUWCegs7b/GRvXEdIss5s=",
438
- "url": "_framework/MindExecution.Plugins.Concept.cvmglrxsjb.dll"
441
+ "hash": "sha256-caSJdsMUA/y2XoLlC69Ml7LVPyEklu9iUqK8LbLH/Ac=",
442
+ "url": "_framework/MindExecution.Plugins.Concept.zzczjzhvk1.dll"
439
443
  },
440
444
  {
441
- "hash": "sha256-Z1x+H7sTj3w9XjWxfqGsd3Jv+qlzwQxAur6pJIP4l20=",
442
- "url": "_framework/MindExecution.Plugins.Directory.jtw9q1dm9n.dll"
445
+ "hash": "sha256-O07lrIPzxWQRivTDifZBsSoG+ZMptwdu2Ey2e9sF0M0=",
446
+ "url": "_framework/MindExecution.Plugins.Directory.bsorcntiwp.dll"
443
447
  },
444
448
  {
445
- "hash": "sha256-NDlttv/8WOvjy9hud+07v5ul3ZJhf2n/cf2CgMfhBnA=",
446
- "url": "_framework/MindExecution.Plugins.PlanMaster.8hmc6ps1ux.dll"
449
+ "hash": "sha256-NsaH6mfDGUtq96FRS/yR+b5QyLzjVWublyCQBKugpss=",
450
+ "url": "_framework/MindExecution.Plugins.PlanMaster.i5j9t4f1jf.dll"
447
451
  },
448
452
  {
449
- "hash": "sha256-Pf4IWNwd62loUPGvRnJ8ZgJ1X/h87tNDeBwS8ajlwyk=",
450
- "url": "_framework/MindExecution.Plugins.YouTube.xb9sou9ox0.dll"
453
+ "hash": "sha256-l6UnB6LB9UHscjF/q5j8F2fKCunQ63w6mkwEEuWK3tg=",
454
+ "url": "_framework/MindExecution.Plugins.YouTube.1mpn9satft.dll"
451
455
  },
452
456
  {
453
- "hash": "sha256-3zUucQiJHN3pl4KBqsG0D0j054ojYss5D69/xCNTngY=",
454
- "url": "_framework/MindExecution.Shared.pqab76cjb6.dll"
457
+ "hash": "sha256-Bk/J98QCHrurXfAfiETiavqv5g5jXQ73yvEdYibuIrU=",
458
+ "url": "_framework/MindExecution.Shared.mpi1gzau9b.dll"
455
459
  },
456
460
  {
457
- "hash": "sha256-5sJydtlQZKVkPUzMIYPO5q2iWWpstxPNVn6Kyk3fBrk=",
458
- "url": "_framework/MindExecution.Web.mc24u4bzol.dll"
461
+ "hash": "sha256-JW4hqFR8NT2yFKIvMflIhM8Wks9Dec4w+0ofv69tU6w=",
462
+ "url": "_framework/MindExecution.Web.nxykcyxd02.dll"
459
463
  },
460
464
  {
461
465
  "hash": "sha256-IsZJ91/OW+fHzNqIgEc7Y072ns8z9dGritiSyvR9Wgc=",
@@ -774,7 +778,7 @@
774
778
  "url": "_framework/Websocket.Client.vapounvmnl.dll"
775
779
  },
776
780
  {
777
- "hash": "sha256-BhRb0qMTAHsNxt77FQUjETyjbzdhjkbZN5P0GDBi7vU=",
781
+ "hash": "sha256-efYVBj4Jm4ZnmPFM+XlCUI1QryxIbUGpXgESbyxFr4g=",
778
782
  "url": "_framework/blazor.boot.json"
779
783
  },
780
784
  {
@@ -834,7 +838,7 @@
834
838
  "url": "icon-512.png"
835
839
  },
836
840
  {
837
- "hash": "sha256-ofd66howCQblx2Uy6MHTwD8Hwb1zYJZ0E9NtIBUxi3o=",
841
+ "hash": "sha256-vfaRB6KlJZ7SQhWJYbdLn8EiiizshJMwvL4n4HkCEpM=",
838
842
  "url": "index.html"
839
843
  },
840
844
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: VUZJrplE */
1
+ /* Manifest version: Zf4S1may */
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