@mindexec/cli 0.2.124 → 0.2.126
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
|
@@ -13461,6 +13461,7 @@
|
|
|
13461
13461
|
const REMOTE_FLEET_FRAME_BLOB_CACHE_LIMIT = 96;
|
|
13462
13462
|
const REMOTE_FLEET_LIVE_FRAME_DECODE_TIMEOUT_MS = 180;
|
|
13463
13463
|
const REMOTE_FLEET_THUMBNAIL_FRAME_DECODE_TIMEOUT_MS = 1200;
|
|
13464
|
+
const REMOTE_FLEET_BINARY_FRAME_MAX_DECODE_IN_FLIGHT = 2;
|
|
13464
13465
|
const REMOTE_FLEET_BINARY_FRAME_WS_RECONNECT_MS = 1500;
|
|
13465
13466
|
const REMOTE_FLEET_BINARY_FRAME_SUBSCRIBE_MS = 1000;
|
|
13466
13467
|
const REMOTE_FLEET_BINARY_FRAME_STALE_FALLBACK_MS = 1400;
|
|
@@ -14506,13 +14507,14 @@
|
|
|
14506
14507
|
}
|
|
14507
14508
|
|
|
14508
14509
|
if (comparePending) {
|
|
14509
|
-
const pendingUrl = String(preview.dataset.remoteFleetPendingImageUrl || preview.dataset.remoteFleetPendingFrameUrl || '');
|
|
14510
|
-
const pendingKind = String(preview.dataset.remoteFleetPendingImageKind || preview.dataset.remoteFleetPendingFrameKind || '').toLowerCase();
|
|
14511
|
-
const pendingSeq = Number(preview.dataset.remoteFleetPendingImageSeq || preview.dataset.remoteFleetPendingFrameSeq || '0');
|
|
14512
|
-
|
|
14510
|
+
const pendingUrl = String(preview.dataset.remoteFleetPendingBinaryUrl || preview.dataset.remoteFleetPendingImageUrl || preview.dataset.remoteFleetPendingFrameUrl || '');
|
|
14511
|
+
const pendingKind = String(preview.dataset.remoteFleetPendingBinaryKind || preview.dataset.remoteFleetPendingImageKind || preview.dataset.remoteFleetPendingFrameKind || '').toLowerCase();
|
|
14512
|
+
const pendingSeq = Number(preview.dataset.remoteFleetPendingBinarySeq || preview.dataset.remoteFleetPendingImageSeq || preview.dataset.remoteFleetPendingFrameSeq || '0');
|
|
14513
|
+
const hasPendingFrame = !!pendingUrl || !!pendingKind || (Number.isFinite(pendingSeq) && pendingSeq > 0);
|
|
14514
|
+
if (hasPendingFrame) {
|
|
14513
14515
|
const samePending = pendingKind === frame.kind
|
|
14514
14516
|
&& pendingSeq === nextSeq
|
|
14515
|
-
&& pendingUrl === frame.frameUrl;
|
|
14517
|
+
&& (pendingUrl === frame.frameUrl || (!pendingUrl && !frame.frameUrl));
|
|
14516
14518
|
if (samePending) {
|
|
14517
14519
|
return false;
|
|
14518
14520
|
}
|
|
@@ -14652,6 +14654,165 @@
|
|
|
14652
14654
|
}
|
|
14653
14655
|
}
|
|
14654
14656
|
|
|
14657
|
+
function clearRemoteFleetPendingBinaryDataset(preview, frame) {
|
|
14658
|
+
if (!preview || preview._remoteFleetPendingBinaryFrame) {
|
|
14659
|
+
return;
|
|
14660
|
+
}
|
|
14661
|
+
|
|
14662
|
+
const pendingKind = String(preview.dataset.remoteFleetPendingBinaryKind || '').toLowerCase();
|
|
14663
|
+
const pendingSeq = Number(preview.dataset.remoteFleetPendingBinarySeq || '0');
|
|
14664
|
+
const pendingUrl = String(preview.dataset.remoteFleetPendingBinaryUrl || '');
|
|
14665
|
+
const frameKind = String(frame?.kind || '').toLowerCase();
|
|
14666
|
+
const frameSeq = Number(frame?.frameSeq || 0);
|
|
14667
|
+
const frameUrl = String(frame?.frameUrl || '');
|
|
14668
|
+
const sameFrame = !frame
|
|
14669
|
+
|| (pendingKind === frameKind
|
|
14670
|
+
&& pendingSeq === frameSeq
|
|
14671
|
+
&& (pendingUrl === frameUrl || (!pendingUrl && !frameUrl)));
|
|
14672
|
+
|
|
14673
|
+
if (!sameFrame) {
|
|
14674
|
+
return;
|
|
14675
|
+
}
|
|
14676
|
+
|
|
14677
|
+
delete preview.dataset.remoteFleetPendingBinaryKind;
|
|
14678
|
+
delete preview.dataset.remoteFleetPendingBinarySeq;
|
|
14679
|
+
delete preview.dataset.remoteFleetPendingBinaryUrl;
|
|
14680
|
+
}
|
|
14681
|
+
|
|
14682
|
+
function hasRemoteFleetSupersedingBinaryFrame(preview, frame) {
|
|
14683
|
+
const pending = preview?._remoteFleetPendingBinaryFrame;
|
|
14684
|
+
if (!pending || !frame) {
|
|
14685
|
+
return false;
|
|
14686
|
+
}
|
|
14687
|
+
|
|
14688
|
+
const pendingKind = String(pending.kind || '').toLowerCase();
|
|
14689
|
+
const frameKind = String(frame.kind || '').toLowerCase();
|
|
14690
|
+
if (pendingKind === 'live' && frameKind !== 'live') {
|
|
14691
|
+
return true;
|
|
14692
|
+
}
|
|
14693
|
+
|
|
14694
|
+
const pendingSeq = Number(pending.frameSeq || 0);
|
|
14695
|
+
const frameSeq = Number(frame.frameSeq || 0);
|
|
14696
|
+
if (Number.isFinite(pendingSeq)
|
|
14697
|
+
&& Number.isFinite(frameSeq)
|
|
14698
|
+
&& pendingSeq > 0
|
|
14699
|
+
&& frameSeq > 0) {
|
|
14700
|
+
return pendingSeq > frameSeq;
|
|
14701
|
+
}
|
|
14702
|
+
|
|
14703
|
+
return getRemoteFleetFrameIdentity(pending) !== getRemoteFleetFrameIdentity(frame);
|
|
14704
|
+
}
|
|
14705
|
+
|
|
14706
|
+
function drainRemoteFleetBinaryCanvasPaint(preview) {
|
|
14707
|
+
if (!preview
|
|
14708
|
+
|| !document.body.contains(preview)
|
|
14709
|
+
|| Number(preview._remoteFleetBinaryPaintInFlight || 0) >= REMOTE_FLEET_BINARY_FRAME_MAX_DECODE_IN_FLIGHT) {
|
|
14710
|
+
return;
|
|
14711
|
+
}
|
|
14712
|
+
|
|
14713
|
+
const frame = preview._remoteFleetPendingBinaryFrame;
|
|
14714
|
+
if (!frame || !frame._remoteFleetPayloadBlob || typeof createImageBitmap !== 'function') {
|
|
14715
|
+
preview._remoteFleetPendingBinaryFrame = null;
|
|
14716
|
+
clearRemoteFleetPendingBinaryDataset(preview, frame);
|
|
14717
|
+
return;
|
|
14718
|
+
}
|
|
14719
|
+
|
|
14720
|
+
if (!isRemoteFleetFrameNewerForPreview(preview, frame, false)) {
|
|
14721
|
+
preview._remoteFleetPendingBinaryFrame = null;
|
|
14722
|
+
clearRemoteFleetPendingBinaryDataset(preview, frame);
|
|
14723
|
+
return;
|
|
14724
|
+
}
|
|
14725
|
+
|
|
14726
|
+
preview._remoteFleetPendingBinaryFrame = null;
|
|
14727
|
+
preview._remoteFleetBinaryPaintInFlight = Number(preview._remoteFleetBinaryPaintInFlight || 0) + 1;
|
|
14728
|
+
const token = Number(preview._remoteFleetBinaryPaintToken || 0) + 1;
|
|
14729
|
+
preview._remoteFleetBinaryPaintToken = token;
|
|
14730
|
+
|
|
14731
|
+
loadRemoteFleetFrameBitmap(frame)
|
|
14732
|
+
.then(bitmap => new Promise(resolve => {
|
|
14733
|
+
if (!bitmap) {
|
|
14734
|
+
resolve(false);
|
|
14735
|
+
return;
|
|
14736
|
+
}
|
|
14737
|
+
|
|
14738
|
+
requestRemoteFleetFrameLoopFrame(() => {
|
|
14739
|
+
let committed = false;
|
|
14740
|
+
try {
|
|
14741
|
+
const isLatestToken = Number(preview._remoteFleetBinaryPaintToken || 0) === token;
|
|
14742
|
+
const superseded = hasRemoteFleetSupersedingBinaryFrame(preview, frame);
|
|
14743
|
+
if (document.body.contains(preview) && isLatestToken && !superseded) {
|
|
14744
|
+
const canvas = ensureRemoteFleetFrameCanvas(preview);
|
|
14745
|
+
const image = preview.querySelector?.('img[data-remote-fleet-frame-image="true"]') || null;
|
|
14746
|
+
committed = commitRemoteFleetFrameToCanvas(preview, canvas, image, bitmap, frame);
|
|
14747
|
+
}
|
|
14748
|
+
} finally {
|
|
14749
|
+
if (typeof bitmap.close === 'function') {
|
|
14750
|
+
bitmap.close();
|
|
14751
|
+
}
|
|
14752
|
+
}
|
|
14753
|
+
|
|
14754
|
+
if (committed) {
|
|
14755
|
+
window.RuntimeTrace?.emit?.('remote.frame.binaryPatched', {
|
|
14756
|
+
count: 1,
|
|
14757
|
+
kind: frame.kind,
|
|
14758
|
+
seq: frame.frameSeq,
|
|
14759
|
+
surface: 'binary-canvas',
|
|
14760
|
+
contentHash: frame.contentHash || '',
|
|
14761
|
+
sameContentStreak: Number(frame.sameContentStreak || 0) || 0,
|
|
14762
|
+
captureMs: Number(frame.captureMs || 0) || 0
|
|
14763
|
+
});
|
|
14764
|
+
} else {
|
|
14765
|
+
window.RuntimeTrace?.emit?.('remote.frame.binarySkipped', {
|
|
14766
|
+
kind: frame.kind,
|
|
14767
|
+
seq: frame.frameSeq,
|
|
14768
|
+
reason: hasRemoteFleetSupersedingBinaryFrame(preview, frame) ? 'superseded' : 'stale'
|
|
14769
|
+
});
|
|
14770
|
+
}
|
|
14771
|
+
|
|
14772
|
+
resolve(committed);
|
|
14773
|
+
});
|
|
14774
|
+
}))
|
|
14775
|
+
.catch(error => {
|
|
14776
|
+
window.RuntimeTrace?.emit?.('remote.frame.binaryDecodeFailed', {
|
|
14777
|
+
kind: frame.kind,
|
|
14778
|
+
seq: frame.frameSeq,
|
|
14779
|
+
error: error?.message || String(error || '')
|
|
14780
|
+
});
|
|
14781
|
+
})
|
|
14782
|
+
.finally(() => {
|
|
14783
|
+
preview._remoteFleetBinaryPaintInFlight = Math.max(0, Number(preview._remoteFleetBinaryPaintInFlight || 0) - 1);
|
|
14784
|
+
if (!preview._remoteFleetPendingBinaryFrame) {
|
|
14785
|
+
clearRemoteFleetPendingBinaryDataset(preview, frame);
|
|
14786
|
+
}
|
|
14787
|
+
if (preview._remoteFleetPendingBinaryFrame) {
|
|
14788
|
+
drainRemoteFleetBinaryCanvasPaint(preview);
|
|
14789
|
+
}
|
|
14790
|
+
});
|
|
14791
|
+
}
|
|
14792
|
+
|
|
14793
|
+
function queueRemoteFleetBinaryCanvasPaint(preview, frame) {
|
|
14794
|
+
if (!preview
|
|
14795
|
+
|| !frame
|
|
14796
|
+
|| frame._remoteFleetBinaryFrame !== true
|
|
14797
|
+
|| !frame._remoteFleetPayloadBlob
|
|
14798
|
+
|| typeof createImageBitmap !== 'function'
|
|
14799
|
+
|| !isRemoteFleetFrameNewerForPreview(preview, frame, true)) {
|
|
14800
|
+
return false;
|
|
14801
|
+
}
|
|
14802
|
+
|
|
14803
|
+
const nextFrame = cloneRemoteFleetFramePatch(frame);
|
|
14804
|
+
preview._remoteFleetPendingBinaryFrame = nextFrame;
|
|
14805
|
+
preview.dataset.remoteFleetPendingBinaryKind = nextFrame.kind;
|
|
14806
|
+
preview.dataset.remoteFleetPendingBinarySeq = String(nextFrame.frameSeq || 0);
|
|
14807
|
+
preview.dataset.remoteFleetPendingBinaryUrl = nextFrame.frameUrl || '';
|
|
14808
|
+
window.RuntimeTrace?.emit?.('remote.frame.binaryQueued', {
|
|
14809
|
+
kind: nextFrame.kind,
|
|
14810
|
+
seq: nextFrame.frameSeq
|
|
14811
|
+
});
|
|
14812
|
+
drainRemoteFleetBinaryCanvasPaint(preview);
|
|
14813
|
+
return true;
|
|
14814
|
+
}
|
|
14815
|
+
|
|
14655
14816
|
function processRemoteFleetFramePaintQueue(preview, image) {
|
|
14656
14817
|
if (!preview || !image || preview._remoteFleetFrameLoaderActive === true) {
|
|
14657
14818
|
return;
|
|
@@ -14925,6 +15086,16 @@
|
|
|
14925
15086
|
}
|
|
14926
15087
|
|
|
14927
15088
|
function applyRemoteFleetFramePatchToPreview(preview, frame) {
|
|
15089
|
+
if (frame?._remoteFleetBinaryFrame === true && frame?._remoteFleetPayloadBlob) {
|
|
15090
|
+
preview._remoteFleetPendingImageFrame = null;
|
|
15091
|
+
delete preview.dataset.remoteFleetPendingImageKind;
|
|
15092
|
+
delete preview.dataset.remoteFleetPendingImageSeq;
|
|
15093
|
+
delete preview.dataset.remoteFleetPendingImageUrl;
|
|
15094
|
+
if (queueRemoteFleetBinaryCanvasPaint(preview, frame)) {
|
|
15095
|
+
return true;
|
|
15096
|
+
}
|
|
15097
|
+
}
|
|
15098
|
+
|
|
14928
15099
|
if (String(frame?.kind || '').toLowerCase() === 'live') {
|
|
14929
15100
|
preview._remoteFleetPendingImageFrame = null;
|
|
14930
15101
|
delete preview.dataset.remoteFleetPendingImageKind;
|
package/wwwroot/index.html
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
<title>MindExec | Run your ideas as AI task graphs</title>
|
|
8
8
|
<meta name="description" content="MindExec is an AI execution canvas for solo builders, researchers, developers, and creators. Start with free browser tools, then move serious work into saved MindCanvas projects." />
|
|
9
9
|
<base href="/" />
|
|
10
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260616-mdm-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260616-mdm-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260616-mdm-binary-canvas-v578" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260616-mdm-binary-canvas-v578" />
|
|
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 = '20260616-mdm-
|
|
582
|
+
const scriptVersion = '20260616-mdm-binary-canvas-v578';
|
|
583
583
|
const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
|
|
584
584
|
console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
|
|
585
585
|
const criticalScripts = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
self.assetsManifest = {
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "spx46FdE",
|
|
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-
|
|
89
|
+
"hash": "sha256-g1BhxjO7bWZgkU1pMxOmGH/Z3n7XsZQYBIx31/Ptsu0=",
|
|
90
90
|
"url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
@@ -834,7 +834,7 @@
|
|
|
834
834
|
"url": "image-manifest.json"
|
|
835
835
|
},
|
|
836
836
|
{
|
|
837
|
-
"hash": "sha256-
|
|
837
|
+
"hash": "sha256-xRw/+Q0xTn1kYsE6nXsqd3DUoiZOzocvU7tivvgtQfQ=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|