@mindexec/cli 0.2.51 → 0.2.52
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 +1 -1
- package/remote-hub.js +6 -0
- package/server.js +5 -3
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +270 -4
- package/wwwroot/_framework/MindExecution.Core.07ktly047n.dll +0 -0
- package/wwwroot/_framework/{MindExecution.Kernel.necgouk2lu.dll → MindExecution.Kernel.jgfwunsvz4.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Admin.i1bsxgnkwb.dll → MindExecution.Plugins.Admin.uz1ws5p7x5.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Business.opnf5esnox.dll → MindExecution.Plugins.Business.yeedyl4etv.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Concept.3c5vvjh1ax.dll → MindExecution.Plugins.Concept.i8wxwseow8.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Directory.mcs5ilkrby.dll → MindExecution.Plugins.Directory.mbuksx1hqq.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.ofkqkx5csm.dll → MindExecution.Plugins.PlanMaster.vp3cl6bvxb.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.YouTube.si9ylbnkqo.dll → MindExecution.Plugins.YouTube.snkp6shzuk.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Shared.w5v05uuccd.dll → MindExecution.Shared.irzb0k7hye.dll} +0 -0
- package/wwwroot/_framework/MindExecution.Web.td6ps8xw4t.dll +0 -0
- package/wwwroot/_framework/blazor.boot.json +21 -21
- package/wwwroot/index.html +3 -3
- package/wwwroot/service-worker-assets.js +24 -24
- package/wwwroot/service-worker.js +1 -1
- package/wwwroot/_framework/MindExecution.Core.fv9epd367q.dll +0 -0
- package/wwwroot/_framework/MindExecution.Web.y71txqhdir.dll +0 -0
package/package.json
CHANGED
package/remote-hub.js
CHANGED
|
@@ -304,6 +304,7 @@ export function createRemoteHub(options = {}) {
|
|
|
304
304
|
DEFAULT_AGENT_TASK_TIMEOUT_MS);
|
|
305
305
|
const managerPackage = safeString(options.managerPackage ?? env.MINDEXEC_MANAGER_PACKAGE ?? '@mindexec/cli', 128);
|
|
306
306
|
const managerVersion = safeString(options.managerVersion ?? env.MINDEXEC_MANAGER_VERSION ?? '', 64);
|
|
307
|
+
const hostInstanceId = safeString(options.hostInstanceId ?? env.MINDEXEC_BRIDGE_INSTANCE_ID ?? crypto.randomUUID(), 128) || crypto.randomUUID();
|
|
307
308
|
const publicEndpoint = safeString(env.MINDEXEC_REMOTE_PUBLIC_ENDPOINT || env.REMOTE_HUB_PUBLIC_ENDPOINT, 256);
|
|
308
309
|
const publicHost = safeString(env.MINDEXEC_REMOTE_PUBLIC_HOST || env.REMOTE_HUB_PUBLIC_HOST, 128);
|
|
309
310
|
const pairToken = safeString(
|
|
@@ -367,6 +368,7 @@ export function createRemoteHub(options = {}) {
|
|
|
367
368
|
active: false,
|
|
368
369
|
nodeId: '',
|
|
369
370
|
leaseId: '',
|
|
371
|
+
hostInstanceId: '',
|
|
370
372
|
endpoint: '',
|
|
371
373
|
activatedAt: '',
|
|
372
374
|
updatedAt: '',
|
|
@@ -378,6 +380,7 @@ export function createRemoteHub(options = {}) {
|
|
|
378
380
|
active: true,
|
|
379
381
|
nodeId: target.nodeId,
|
|
380
382
|
leaseId: target.leaseId,
|
|
383
|
+
hostInstanceId: target.hostInstanceId || hostInstanceId,
|
|
381
384
|
endpoint: target.endpoint,
|
|
382
385
|
activatedAt: target.activatedAt,
|
|
383
386
|
updatedAt: target.updatedAt,
|
|
@@ -437,6 +440,7 @@ export function createRemoteHub(options = {}) {
|
|
|
437
440
|
hostTarget = {
|
|
438
441
|
nodeId,
|
|
439
442
|
leaseId: activeSameNode && previous?.leaseId ? previous.leaseId : crypto.randomUUID(),
|
|
443
|
+
hostInstanceId,
|
|
440
444
|
endpoint: getAgentEndpoint(),
|
|
441
445
|
activatedAt: activeSameNode && previous?.activatedAt ? previous.activatedAt : now.toISOString(),
|
|
442
446
|
updatedAt: now.toISOString(),
|
|
@@ -469,6 +473,7 @@ export function createRemoteHub(options = {}) {
|
|
|
469
473
|
taskTimeoutMs,
|
|
470
474
|
managerPackage,
|
|
471
475
|
managerVersion,
|
|
476
|
+
hostInstanceId,
|
|
472
477
|
agentPackage: '@mindexec/remote',
|
|
473
478
|
agentEndpoint: getAgentEndpoint(),
|
|
474
479
|
pairToken: includeSecrets ? pairToken : undefined,
|
|
@@ -480,6 +485,7 @@ export function createRemoteHub(options = {}) {
|
|
|
480
485
|
hostTargetActive: activeHostTarget.active,
|
|
481
486
|
hostTargetNodeId: activeHostTarget.nodeId,
|
|
482
487
|
hostTargetLeaseId: activeHostTarget.leaseId,
|
|
488
|
+
hostTargetHostInstanceId: activeHostTarget.hostInstanceId,
|
|
483
489
|
hostTargetEndpoint: activeHostTarget.endpoint,
|
|
484
490
|
hostTargetActivatedAt: activeHostTarget.activatedAt,
|
|
485
491
|
hostTargetUpdatedAt: activeHostTarget.updatedAt,
|
package/server.js
CHANGED
|
@@ -33,8 +33,9 @@ const app = express();
|
|
|
33
33
|
const PORT = normalizePort(process.env.BRIDGE_PORT);
|
|
34
34
|
const BRIDGE_ROOT = path.dirname(fileURLToPath(import.meta.url));
|
|
35
35
|
const PACKAGE_INFO = JSON.parse(readFileSync(path.join(BRIDGE_ROOT, 'package.json'), 'utf8'));
|
|
36
|
-
const BRIDGE_PACKAGE_NAME = String(PACKAGE_INFO.name || '@mindexec/cli');
|
|
37
|
-
const BRIDGE_VERSION = String(PACKAGE_INFO.version || '0.1.0');
|
|
36
|
+
const BRIDGE_PACKAGE_NAME = String(PACKAGE_INFO.name || '@mindexec/cli');
|
|
37
|
+
const BRIDGE_VERSION = String(PACKAGE_INFO.version || '0.1.0');
|
|
38
|
+
const BRIDGE_INSTANCE_ID = String(process.env.MINDEXEC_BRIDGE_INSTANCE_ID || crypto.randomUUID()).trim() || crypto.randomUUID();
|
|
38
39
|
const TREE_SITTER_GRAMMAR_DIR = path.join(BRIDGE_ROOT, 'tree-sitter-grammars');
|
|
39
40
|
const VERBOSE_CODEX_TRACE = /^(1|true|yes|on)$/i.test(String(process.env.BRIDGE_VERBOSE_CODEX || ''));
|
|
40
41
|
const COLOR_LOGS_ENABLED = Boolean(process.stdout.isTTY) && !process.env.NO_COLOR;
|
|
@@ -2515,7 +2516,8 @@ const remoteHub = createRemoteHub({
|
|
|
2515
2516
|
logError,
|
|
2516
2517
|
emitEvent: emitBridgeEvent,
|
|
2517
2518
|
managerPackage: BRIDGE_PACKAGE_NAME,
|
|
2518
|
-
managerVersion: BRIDGE_VERSION
|
|
2519
|
+
managerVersion: BRIDGE_VERSION,
|
|
2520
|
+
hostInstanceId: BRIDGE_INSTANCE_ID
|
|
2519
2521
|
});
|
|
2520
2522
|
|
|
2521
2523
|
const REMOTE_AGENT_STDIO_TAIL_CHARS = 12000;
|
|
@@ -12765,8 +12765,10 @@
|
|
|
12765
12765
|
return select;
|
|
12766
12766
|
}
|
|
12767
12767
|
|
|
12768
|
-
const REMOTE_FLEET_MONITOR_REFRESH_MS =
|
|
12769
|
-
const REMOTE_FLEET_LIVE_REFRESH_MS =
|
|
12768
|
+
const REMOTE_FLEET_MONITOR_REFRESH_MS = 10000;
|
|
12769
|
+
const REMOTE_FLEET_LIVE_REFRESH_MS = 5000;
|
|
12770
|
+
const REMOTE_FLEET_LIVE_FRAME_REFRESH_MS = 50;
|
|
12771
|
+
const REMOTE_FLEET_THUMBNAIL_FRAME_REFRESH_MS = 2000;
|
|
12770
12772
|
const REMOTE_FLEET_TASK_FOLLOW_INITIAL_MS = 250;
|
|
12771
12773
|
const REMOTE_FLEET_TASK_FOLLOW_REFRESH_MS = 2000;
|
|
12772
12774
|
const REMOTE_FLEET_TASK_FOLLOW_MAX_TICKS = 60;
|
|
@@ -12917,6 +12919,12 @@
|
|
|
12917
12919
|
clearInterval(bodyView._remoteFleetMonitorRefreshTimer);
|
|
12918
12920
|
bodyView._remoteFleetMonitorRefreshTimer = null;
|
|
12919
12921
|
}
|
|
12922
|
+
if (bodyView._remoteFleetFrameLoopRaf) {
|
|
12923
|
+
cancelAnimationFrame(bodyView._remoteFleetFrameLoopRaf);
|
|
12924
|
+
bodyView._remoteFleetFrameLoopRaf = null;
|
|
12925
|
+
}
|
|
12926
|
+
bodyView._remoteFleetFrameLoopActive = false;
|
|
12927
|
+
bodyView._remoteFleetFrameRefreshInFlight = false;
|
|
12920
12928
|
if (bodyView._remoteFleetTaskFollowTimer) {
|
|
12921
12929
|
clearTimeout(bodyView._remoteFleetTaskFollowTimer);
|
|
12922
12930
|
bodyView._remoteFleetTaskFollowTimer = null;
|
|
@@ -12983,6 +12991,200 @@
|
|
|
12983
12991
|
|| getRemoteFleetDeviceField(device, 'thumbnailDataUrl', 'ThumbnailDataUrl', ''));
|
|
12984
12992
|
}
|
|
12985
12993
|
|
|
12994
|
+
function getRemoteFleetFrameSeq(device, frameKind) {
|
|
12995
|
+
const raw = frameKind === 'live'
|
|
12996
|
+
? getRemoteFleetDeviceField(device, 'liveFrameSeq', 'LiveFrameSeq', 0)
|
|
12997
|
+
: getRemoteFleetDeviceField(device, 'thumbnailFrameSeq', 'ThumbnailFrameSeq', 0);
|
|
12998
|
+
const seq = Number(raw);
|
|
12999
|
+
return Number.isFinite(seq) ? Math.floor(seq) : 0;
|
|
13000
|
+
}
|
|
13001
|
+
|
|
13002
|
+
function normalizeRemoteFleetFramePayload(payload, fallbackKind = 'thumbnail') {
|
|
13003
|
+
if (!payload || typeof payload !== 'object') {
|
|
13004
|
+
return null;
|
|
13005
|
+
}
|
|
13006
|
+
|
|
13007
|
+
const frame = payload.frame || payload.Frame || payload;
|
|
13008
|
+
if (!frame || typeof frame !== 'object') {
|
|
13009
|
+
return null;
|
|
13010
|
+
}
|
|
13011
|
+
|
|
13012
|
+
const source = String(
|
|
13013
|
+
readRemoteFleetObjectField(frame, 'frameUrl', 'FrameUrl', '')
|
|
13014
|
+
|| readRemoteFleetObjectField(frame, 'framePath', 'FramePath', '')
|
|
13015
|
+
|| readRemoteFleetObjectField(frame, 'dataUrl', 'DataUrl', '')).trim();
|
|
13016
|
+
if (!isRemoteFleetFrameSource(source)) {
|
|
13017
|
+
return null;
|
|
13018
|
+
}
|
|
13019
|
+
|
|
13020
|
+
const seq = Number(readRemoteFleetObjectField(frame, 'frameSeq', 'FrameSeq', 0));
|
|
13021
|
+
return {
|
|
13022
|
+
deviceId: String(readRemoteFleetObjectField(frame, 'deviceId', 'DeviceId', '')).trim(),
|
|
13023
|
+
kind: String(readRemoteFleetObjectField(frame, 'kind', 'Kind', fallbackKind) || fallbackKind).trim().toLowerCase(),
|
|
13024
|
+
frameSeq: Number.isFinite(seq) ? Math.floor(seq) : 0,
|
|
13025
|
+
frameUrl: source,
|
|
13026
|
+
receivedAt: String(readRemoteFleetObjectField(frame, 'receivedAt', 'ReceivedAt', '') || '').trim(),
|
|
13027
|
+
capturedAt: String(readRemoteFleetObjectField(frame, 'capturedAt', 'CapturedAt', '') || '').trim(),
|
|
13028
|
+
streamId: String(readRemoteFleetObjectField(frame, 'streamId', 'StreamId', '') || '').trim()
|
|
13029
|
+
};
|
|
13030
|
+
}
|
|
13031
|
+
|
|
13032
|
+
function normalizeRemoteFleetDeviceFramePatches(result) {
|
|
13033
|
+
const rows = result?.frames || result?.Frames || [];
|
|
13034
|
+
if (!Array.isArray(rows)) {
|
|
13035
|
+
return [];
|
|
13036
|
+
}
|
|
13037
|
+
|
|
13038
|
+
const patches = [];
|
|
13039
|
+
rows.forEach(row => {
|
|
13040
|
+
const deviceId = String(readRemoteFleetObjectField(row, 'deviceId', 'DeviceId', '') || '').trim();
|
|
13041
|
+
const live = normalizeRemoteFleetFramePayload(row?.live || row?.Live, 'live');
|
|
13042
|
+
const thumbnail = normalizeRemoteFleetFramePayload(row?.thumbnail || row?.Thumbnail, 'thumbnail');
|
|
13043
|
+
[thumbnail, live].forEach(frame => {
|
|
13044
|
+
if (!frame) return;
|
|
13045
|
+
frame.deviceId = frame.deviceId || deviceId;
|
|
13046
|
+
patches.push(frame);
|
|
13047
|
+
});
|
|
13048
|
+
});
|
|
13049
|
+
return patches;
|
|
13050
|
+
}
|
|
13051
|
+
|
|
13052
|
+
function ensureRemoteFleetFrameImage(preview, frame) {
|
|
13053
|
+
let image = preview?.querySelector?.('img[data-remote-fleet-frame-image="true"]');
|
|
13054
|
+
if (image) {
|
|
13055
|
+
return image;
|
|
13056
|
+
}
|
|
13057
|
+
|
|
13058
|
+
image = document.createElement('img');
|
|
13059
|
+
image.dataset.remoteFleetFrameImage = 'true';
|
|
13060
|
+
image.alt = frame.kind === 'live' ? 'Live screen' : 'Remote screen';
|
|
13061
|
+
image.loading = frame.kind === 'thumbnail' ? 'lazy' : 'eager';
|
|
13062
|
+
image.decoding = 'async';
|
|
13063
|
+
image.style.cssText = 'width:100%;height:100%;object-fit:cover;display:block;';
|
|
13064
|
+
const placeholder = preview?.querySelector?.('[data-remote-fleet-screen-placeholder="true"]');
|
|
13065
|
+
if (placeholder) {
|
|
13066
|
+
placeholder.remove();
|
|
13067
|
+
}
|
|
13068
|
+
preview?.insertBefore?.(image, preview.firstChild || null);
|
|
13069
|
+
return image;
|
|
13070
|
+
}
|
|
13071
|
+
|
|
13072
|
+
function applyRemoteFleetFramePatchToPreview(preview, frame) {
|
|
13073
|
+
if (!preview || !frame || !isRemoteFleetFrameSource(frame.frameUrl)) {
|
|
13074
|
+
return false;
|
|
13075
|
+
}
|
|
13076
|
+
|
|
13077
|
+
const currentSeq = Number(preview.dataset.remoteFleetFrameSeq || '0');
|
|
13078
|
+
const nextSeq = Number(frame.frameSeq || 0);
|
|
13079
|
+
const currentKind = String(preview.dataset.remoteFleetFrameKind || '').toLowerCase();
|
|
13080
|
+
const isNewer = frame.kind === 'live' && currentKind !== 'live'
|
|
13081
|
+
|| !Number.isFinite(currentSeq)
|
|
13082
|
+
|| nextSeq <= 0
|
|
13083
|
+
|| nextSeq > currentSeq
|
|
13084
|
+
|| String(preview.dataset.remoteFleetFrameUrl || '') !== frame.frameUrl;
|
|
13085
|
+
if (!isNewer) {
|
|
13086
|
+
return false;
|
|
13087
|
+
}
|
|
13088
|
+
|
|
13089
|
+
const image = ensureRemoteFleetFrameImage(preview, frame);
|
|
13090
|
+
if (!image) {
|
|
13091
|
+
return false;
|
|
13092
|
+
}
|
|
13093
|
+
|
|
13094
|
+
image.dataset.remoteFleetFrameKind = frame.kind;
|
|
13095
|
+
image.dataset.remoteFleetFrameSeq = String(nextSeq || 0);
|
|
13096
|
+
image.dataset.remoteFleetFrameUrl = frame.frameUrl;
|
|
13097
|
+
image.loading = frame.kind === 'thumbnail' ? 'lazy' : 'eager';
|
|
13098
|
+
if (image.src !== frame.frameUrl) {
|
|
13099
|
+
image.src = frame.frameUrl;
|
|
13100
|
+
}
|
|
13101
|
+
|
|
13102
|
+
preview.dataset.remoteFleetFrameKind = frame.kind;
|
|
13103
|
+
preview.dataset.remoteFleetFrameSeq = String(nextSeq || 0);
|
|
13104
|
+
preview.dataset.remoteFleetFrameUrl = frame.frameUrl;
|
|
13105
|
+
preview.dataset.remoteFleetFrameAt = frame.receivedAt || frame.capturedAt || '';
|
|
13106
|
+
|
|
13107
|
+
const badge = preview.querySelector('[data-remote-fleet-frame-badge="true"]');
|
|
13108
|
+
if (badge) {
|
|
13109
|
+
const at = frame.receivedAt || frame.capturedAt || '';
|
|
13110
|
+
badge.textContent = frame.kind === 'live'
|
|
13111
|
+
? `LIVE ${at ? formatRemoteFleetAge(at) : ''}`.trim()
|
|
13112
|
+
: (at ? formatRemoteFleetAge(at) : 'Screen');
|
|
13113
|
+
badge.style.display = 'inline-flex';
|
|
13114
|
+
badge.style.background = frame.kind === 'live'
|
|
13115
|
+
? 'rgba(220, 38, 38, 0.84)'
|
|
13116
|
+
: 'rgba(15, 23, 42, 0.72)';
|
|
13117
|
+
}
|
|
13118
|
+
|
|
13119
|
+
return true;
|
|
13120
|
+
}
|
|
13121
|
+
|
|
13122
|
+
function applyRemoteFleetFramePatches(bodyView, patches) {
|
|
13123
|
+
if (!bodyView || !Array.isArray(patches) || patches.length === 0) {
|
|
13124
|
+
return 0;
|
|
13125
|
+
}
|
|
13126
|
+
|
|
13127
|
+
let applied = 0;
|
|
13128
|
+
patches.forEach(frame => {
|
|
13129
|
+
const deviceId = String(frame?.deviceId || '').trim();
|
|
13130
|
+
if (!deviceId) return;
|
|
13131
|
+
|
|
13132
|
+
bodyView.querySelectorAll('[data-remote-fleet-device-preview][data-device-id]').forEach(preview => {
|
|
13133
|
+
if (String(preview.dataset.deviceId || '').trim() !== deviceId) return;
|
|
13134
|
+
const currentKind = String(preview.dataset.remoteFleetFrameKind || '').toLowerCase();
|
|
13135
|
+
if (currentKind === 'live' && frame.kind !== 'live') return;
|
|
13136
|
+
if (applyRemoteFleetFramePatchToPreview(preview, frame)) {
|
|
13137
|
+
applied += 1;
|
|
13138
|
+
}
|
|
13139
|
+
});
|
|
13140
|
+
|
|
13141
|
+
bodyView.querySelectorAll(`article[data-device-id]`).forEach(card => {
|
|
13142
|
+
if (String(card.dataset.deviceId || '').trim() === deviceId && frame.kind) {
|
|
13143
|
+
card.dataset.remoteFleetHasFrame = 'true';
|
|
13144
|
+
}
|
|
13145
|
+
});
|
|
13146
|
+
});
|
|
13147
|
+
|
|
13148
|
+
if (applied > 0) {
|
|
13149
|
+
window.RuntimeTrace?.emit?.('remote.frame.uiPatched', {
|
|
13150
|
+
count: applied
|
|
13151
|
+
});
|
|
13152
|
+
}
|
|
13153
|
+
|
|
13154
|
+
return applied;
|
|
13155
|
+
}
|
|
13156
|
+
|
|
13157
|
+
function startRemoteFleetFrameLoop(bodyView, intervalMs, refreshCallback) {
|
|
13158
|
+
if (!bodyView || typeof refreshCallback !== 'function') {
|
|
13159
|
+
return;
|
|
13160
|
+
}
|
|
13161
|
+
|
|
13162
|
+
bodyView._remoteFleetFrameLoopActive = true;
|
|
13163
|
+
let lastTick = 0;
|
|
13164
|
+
const loop = timestamp => {
|
|
13165
|
+
if (!bodyView._remoteFleetFrameLoopActive || !document.body.contains(bodyView)) {
|
|
13166
|
+
clearRemoteFleetTimers(bodyView);
|
|
13167
|
+
return;
|
|
13168
|
+
}
|
|
13169
|
+
|
|
13170
|
+
if (timestamp - lastTick >= intervalMs && bodyView._remoteFleetFrameRefreshInFlight !== true) {
|
|
13171
|
+
lastTick = timestamp;
|
|
13172
|
+
bodyView._remoteFleetFrameRefreshInFlight = true;
|
|
13173
|
+
Promise.resolve(refreshCallback())
|
|
13174
|
+
.catch(() => {
|
|
13175
|
+
clearRemoteFleetTimers(bodyView);
|
|
13176
|
+
})
|
|
13177
|
+
.finally(() => {
|
|
13178
|
+
bodyView._remoteFleetFrameRefreshInFlight = false;
|
|
13179
|
+
});
|
|
13180
|
+
}
|
|
13181
|
+
|
|
13182
|
+
bodyView._remoteFleetFrameLoopRaf = requestAnimationFrame(loop);
|
|
13183
|
+
};
|
|
13184
|
+
|
|
13185
|
+
bodyView._remoteFleetFrameLoopRaf = requestAnimationFrame(loop);
|
|
13186
|
+
}
|
|
13187
|
+
|
|
12986
13188
|
function isRemoteFleetLiveActive(device) {
|
|
12987
13189
|
return getRemoteFleetDeviceField(device, 'liveStreamActive', 'LiveStreamActive', false) === true;
|
|
12988
13190
|
}
|
|
@@ -13215,6 +13417,15 @@
|
|
|
13215
13417
|
bodyView._remoteFleetRefreshInFlight = false;
|
|
13216
13418
|
}
|
|
13217
13419
|
};
|
|
13420
|
+
const refreshRemoteDeviceFrame = async (kind = 'live') => {
|
|
13421
|
+
const result = await invokeDotNetAsync('GetRemoteFleetFrameFromJs', nodeId, deviceId, kind);
|
|
13422
|
+
const frame = normalizeRemoteFleetFramePayload(result?.frame || result?.Frame, kind);
|
|
13423
|
+
if (frame) {
|
|
13424
|
+
frame.deviceId = frame.deviceId || deviceId;
|
|
13425
|
+
applyRemoteFleetFramePatches(bodyView, [frame]);
|
|
13426
|
+
}
|
|
13427
|
+
return result;
|
|
13428
|
+
};
|
|
13218
13429
|
|
|
13219
13430
|
if (!device || !deviceId) {
|
|
13220
13431
|
const empty = document.createElement('div');
|
|
@@ -13314,6 +13525,12 @@
|
|
|
13314
13525
|
bodyView.appendChild(header);
|
|
13315
13526
|
|
|
13316
13527
|
const preview = document.createElement('div');
|
|
13528
|
+
preview.dataset.remoteFleetDevicePreview = 'pinned';
|
|
13529
|
+
preview.dataset.deviceId = deviceId;
|
|
13530
|
+
preview.dataset.remoteFleetFrameKind = hasLiveFrame ? 'live' : (hasThumbnail ? 'thumbnail' : '');
|
|
13531
|
+
preview.dataset.remoteFleetFrameSeq = String(hasLiveFrame
|
|
13532
|
+
? getRemoteFleetDeviceField(device, 'liveFrameSeq', 'LiveFrameSeq', 0)
|
|
13533
|
+
: getRemoteFleetDeviceField(device, 'thumbnailFrameSeq', 'ThumbnailFrameSeq', 0));
|
|
13317
13534
|
preview.style.cssText = `
|
|
13318
13535
|
position: relative;
|
|
13319
13536
|
flex: 0 0 auto;
|
|
@@ -13326,6 +13543,9 @@
|
|
|
13326
13543
|
`;
|
|
13327
13544
|
if (hasLiveFrame || hasThumbnail) {
|
|
13328
13545
|
const image = document.createElement('img');
|
|
13546
|
+
image.dataset.remoteFleetFrameImage = 'true';
|
|
13547
|
+
image.dataset.remoteFleetFrameKind = hasLiveFrame ? 'live' : 'thumbnail';
|
|
13548
|
+
image.dataset.remoteFleetFrameSeq = preview.dataset.remoteFleetFrameSeq;
|
|
13329
13549
|
image.src = previewSource;
|
|
13330
13550
|
image.alt = `${name} screen`;
|
|
13331
13551
|
image.loading = 'lazy';
|
|
@@ -13334,6 +13554,7 @@
|
|
|
13334
13554
|
preview.appendChild(image);
|
|
13335
13555
|
} else {
|
|
13336
13556
|
const placeholder = document.createElement('div');
|
|
13557
|
+
placeholder.dataset.remoteFleetScreenPlaceholder = 'true';
|
|
13337
13558
|
placeholder.textContent = thumbnailEnabled ? 'No frame yet' : 'Status only';
|
|
13338
13559
|
placeholder.style.cssText = `
|
|
13339
13560
|
position: absolute;
|
|
@@ -13349,6 +13570,7 @@
|
|
|
13349
13570
|
preview.appendChild(placeholder);
|
|
13350
13571
|
}
|
|
13351
13572
|
const previewBadge = document.createElement('span');
|
|
13573
|
+
previewBadge.dataset.remoteFleetFrameBadge = 'true';
|
|
13352
13574
|
previewBadge.textContent = hasLiveFrame
|
|
13353
13575
|
? `LIVE ${previewAt ? formatRemoteFleetAge(previewAt) : ''}`.trim()
|
|
13354
13576
|
: (previewAt ? formatRemoteFleetAge(previewAt) : (hubStatus === 'online' ? 'Pinned' : 'Hub offline'));
|
|
@@ -13627,6 +13849,7 @@
|
|
|
13627
13849
|
});
|
|
13628
13850
|
|
|
13629
13851
|
if (liveActive) {
|
|
13852
|
+
startRemoteFleetFrameLoop(bodyView, REMOTE_FLEET_LIVE_FRAME_REFRESH_MS, () => refreshRemoteDeviceFrame('live'));
|
|
13630
13853
|
bodyView._remoteFleetLiveRefreshTimer = setInterval(async () => {
|
|
13631
13854
|
if (!document.body.contains(bodyView)) {
|
|
13632
13855
|
clearRemoteFleetTimers(bodyView);
|
|
@@ -14141,6 +14364,10 @@
|
|
|
14141
14364
|
`;
|
|
14142
14365
|
|
|
14143
14366
|
const livePreview = document.createElement('div');
|
|
14367
|
+
livePreview.dataset.remoteFleetDevicePreview = 'focused-live';
|
|
14368
|
+
livePreview.dataset.deviceId = focusedId;
|
|
14369
|
+
livePreview.dataset.remoteFleetFrameKind = hasLiveFrame ? 'live' : '';
|
|
14370
|
+
livePreview.dataset.remoteFleetFrameSeq = String(getRemoteFleetDeviceField(focusedDevice, 'liveFrameSeq', 'LiveFrameSeq', 0));
|
|
14144
14371
|
livePreview.style.cssText = `
|
|
14145
14372
|
position: relative;
|
|
14146
14373
|
min-width: 0;
|
|
@@ -14152,6 +14379,9 @@
|
|
|
14152
14379
|
`;
|
|
14153
14380
|
if (hasLiveFrame) {
|
|
14154
14381
|
const image = document.createElement('img');
|
|
14382
|
+
image.dataset.remoteFleetFrameImage = 'true';
|
|
14383
|
+
image.dataset.remoteFleetFrameKind = 'live';
|
|
14384
|
+
image.dataset.remoteFleetFrameSeq = livePreview.dataset.remoteFleetFrameSeq;
|
|
14155
14385
|
image.src = liveFrameSource;
|
|
14156
14386
|
image.alt = `${focusedName} live screen`;
|
|
14157
14387
|
image.decoding = 'async';
|
|
@@ -14164,6 +14394,7 @@
|
|
|
14164
14394
|
livePreview.appendChild(image);
|
|
14165
14395
|
} else {
|
|
14166
14396
|
const placeholder = document.createElement('div');
|
|
14397
|
+
placeholder.dataset.remoteFleetScreenPlaceholder = 'true';
|
|
14167
14398
|
placeholder.textContent = liveActive ? 'Waiting for live frame' : 'Live view idle';
|
|
14168
14399
|
placeholder.style.cssText = `
|
|
14169
14400
|
position: absolute;
|
|
@@ -14179,6 +14410,7 @@
|
|
|
14179
14410
|
livePreview.appendChild(placeholder);
|
|
14180
14411
|
}
|
|
14181
14412
|
const liveBadge = document.createElement('span');
|
|
14413
|
+
liveBadge.dataset.remoteFleetFrameBadge = 'true';
|
|
14182
14414
|
liveBadge.textContent = liveActive
|
|
14183
14415
|
? `LIVE ${liveFrameAt ? formatRemoteFleetAge(liveFrameAt) : ''}`.trim()
|
|
14184
14416
|
: 'FOCUS';
|
|
@@ -14267,6 +14499,11 @@
|
|
|
14267
14499
|
|
|
14268
14500
|
const preview = document.createElement('div');
|
|
14269
14501
|
preview.dataset.remoteFleetDevicePreview = mode;
|
|
14502
|
+
preview.dataset.deviceId = getRemoteFleetDeviceId(device);
|
|
14503
|
+
preview.dataset.remoteFleetFrameKind = hasLiveFrame ? 'live' : (hasThumbnail ? 'thumbnail' : '');
|
|
14504
|
+
preview.dataset.remoteFleetFrameSeq = String(hasLiveFrame
|
|
14505
|
+
? getRemoteFleetDeviceField(device, 'liveFrameSeq', 'LiveFrameSeq', 0)
|
|
14506
|
+
: getRemoteFleetDeviceField(device, 'thumbnailFrameSeq', 'ThumbnailFrameSeq', 0));
|
|
14270
14507
|
preview.style.cssText = `
|
|
14271
14508
|
position: relative;
|
|
14272
14509
|
width: 100%;
|
|
@@ -14279,6 +14516,9 @@
|
|
|
14279
14516
|
|
|
14280
14517
|
if (hasLiveFrame || hasThumbnail) {
|
|
14281
14518
|
const image = document.createElement('img');
|
|
14519
|
+
image.dataset.remoteFleetFrameImage = 'true';
|
|
14520
|
+
image.dataset.remoteFleetFrameKind = hasLiveFrame ? 'live' : 'thumbnail';
|
|
14521
|
+
image.dataset.remoteFleetFrameSeq = preview.dataset.remoteFleetFrameSeq;
|
|
14282
14522
|
image.src = previewSource;
|
|
14283
14523
|
image.alt = hasLiveFrame ? `${name} live frame` : `${name} thumbnail`;
|
|
14284
14524
|
image.loading = 'lazy';
|
|
@@ -14316,6 +14556,7 @@
|
|
|
14316
14556
|
|
|
14317
14557
|
if (hasLiveFrame || (isDetail && previewAt)) {
|
|
14318
14558
|
const badge = document.createElement('span');
|
|
14559
|
+
badge.dataset.remoteFleetFrameBadge = 'true';
|
|
14319
14560
|
badge.textContent = hasLiveFrame
|
|
14320
14561
|
? (isDetail && previewAt ? `LIVE ${formatRemoteFleetAge(previewAt)}` : 'LIVE')
|
|
14321
14562
|
: formatRemoteFleetAge(previewAt);
|
|
@@ -14738,6 +14979,19 @@
|
|
|
14738
14979
|
const readTaskInstruction = () => String(taskInput.value || '').trim();
|
|
14739
14980
|
const useAiAssist = () => aiToggle.checked === true;
|
|
14740
14981
|
const getDeviceCards = () => Array.from(grid.querySelectorAll('article[data-device-id]'));
|
|
14982
|
+
const getVisibleFrameDeviceIds = () => {
|
|
14983
|
+
const ids = getDeviceCards()
|
|
14984
|
+
.filter(card => card.style.display !== 'none')
|
|
14985
|
+
.map(card => String(card.dataset.deviceId || '').trim())
|
|
14986
|
+
.filter(Boolean);
|
|
14987
|
+
if (focusedDevice) {
|
|
14988
|
+
const focusedId = getRemoteFleetDeviceId(focusedDevice);
|
|
14989
|
+
if (focusedId) {
|
|
14990
|
+
ids.unshift(focusedId);
|
|
14991
|
+
}
|
|
14992
|
+
}
|
|
14993
|
+
return Array.from(new Set(ids)).slice(0, 120);
|
|
14994
|
+
};
|
|
14741
14995
|
const refreshRemoteFleetNode = async () => {
|
|
14742
14996
|
if (bodyView._remoteFleetRefreshInFlight === true) {
|
|
14743
14997
|
return null;
|
|
@@ -14752,6 +15006,11 @@
|
|
|
14752
15006
|
bodyView._remoteFleetRefreshInFlight = false;
|
|
14753
15007
|
}
|
|
14754
15008
|
};
|
|
15009
|
+
const refreshRemoteFleetVisibleFrames = async (requestThumbnails = false) => {
|
|
15010
|
+
const result = await invokeDotNetAsync('RefreshRemoteFleetFramesFromJs', nodeId, getVisibleFrameDeviceIds(), requestThumbnails === true);
|
|
15011
|
+
applyRemoteFleetFramePatches(bodyView, normalizeRemoteFleetDeviceFramePatches(result));
|
|
15012
|
+
return result;
|
|
15013
|
+
};
|
|
14755
15014
|
const prepareRemoteFleetTaskFollow = batch => {
|
|
14756
15015
|
if (!isRemoteFleetTaskBatchActive(batch)) {
|
|
14757
15016
|
bodyView.dataset.remoteFleetTaskFollowActive = 'false';
|
|
@@ -15023,6 +15282,7 @@
|
|
|
15023
15282
|
|
|
15024
15283
|
const setRemoteFleetHostTarget = async (enabled, options = {}) => {
|
|
15025
15284
|
const quiet = options?.quiet === true;
|
|
15285
|
+
const renew = options?.renew === true || quiet;
|
|
15026
15286
|
const activeButton = enabled ? hostButton : stopHostButton;
|
|
15027
15287
|
if (!quiet && activeButton) {
|
|
15028
15288
|
activeButton.disabled = true;
|
|
@@ -15032,10 +15292,11 @@
|
|
|
15032
15292
|
setTaskFeedback(enabled ? 'Setting host target...' : 'Stopping host target...');
|
|
15033
15293
|
}
|
|
15034
15294
|
try {
|
|
15035
|
-
const result = await invokeDotNetAsync('SetRemoteFleetHostFromJs', nodeId, enabled === true);
|
|
15295
|
+
const result = await invokeDotNetAsync('SetRemoteFleetHostFromJs', nodeId, enabled === true, renew === true);
|
|
15036
15296
|
window.RuntimeTrace?.emit?.('remote.hostTarget.result', {
|
|
15037
15297
|
nodeId,
|
|
15038
15298
|
enabled: enabled === true,
|
|
15299
|
+
renew: renew === true,
|
|
15039
15300
|
success: isRemoteFleetResultSuccess(result),
|
|
15040
15301
|
active: isRemoteFleetResultActive(result),
|
|
15041
15302
|
error: result?.error || result?.Error || ''
|
|
@@ -15043,6 +15304,9 @@
|
|
|
15043
15304
|
rememberRemoteFleetLocalHostTarget(nodeId, enabled === true, result);
|
|
15044
15305
|
await syncRemoteFleetNodeStateFromResult(result);
|
|
15045
15306
|
if (quiet) {
|
|
15307
|
+
if (!isRemoteFleetResultSuccess(result) || !isRemoteFleetResultActive(result)) {
|
|
15308
|
+
stopRemoteFleetHostLeaseTimer(nodeId);
|
|
15309
|
+
}
|
|
15046
15310
|
return result;
|
|
15047
15311
|
}
|
|
15048
15312
|
if (isRemoteFleetResultSuccess(result) && enabled !== true) {
|
|
@@ -15205,10 +15469,11 @@
|
|
|
15205
15469
|
});
|
|
15206
15470
|
|
|
15207
15471
|
if (isHostingTarget) {
|
|
15208
|
-
startRemoteFleetHostLeaseTimer(nodeId, () => setRemoteFleetHostTarget(true, { quiet: true }));
|
|
15472
|
+
startRemoteFleetHostLeaseTimer(nodeId, () => setRemoteFleetHostTarget(true, { quiet: true, renew: true }));
|
|
15209
15473
|
}
|
|
15210
15474
|
|
|
15211
15475
|
if (hasActiveLiveStream) {
|
|
15476
|
+
startRemoteFleetFrameLoop(bodyView, REMOTE_FLEET_LIVE_FRAME_REFRESH_MS, () => refreshRemoteFleetVisibleFrames(false));
|
|
15212
15477
|
bodyView._remoteFleetLiveRefreshTimer = setInterval(async () => {
|
|
15213
15478
|
if (!document.body.contains(bodyView)) {
|
|
15214
15479
|
clearRemoteFleetTimers(bodyView);
|
|
@@ -15222,6 +15487,7 @@
|
|
|
15222
15487
|
}
|
|
15223
15488
|
}, REMOTE_FLEET_LIVE_REFRESH_MS);
|
|
15224
15489
|
} else if (autoMonitorState && hasMonitorTargets) {
|
|
15490
|
+
startRemoteFleetFrameLoop(bodyView, REMOTE_FLEET_THUMBNAIL_FRAME_REFRESH_MS, () => refreshRemoteFleetVisibleFrames(true));
|
|
15225
15491
|
bodyView._remoteFleetMonitorRefreshTimer = setInterval(async () => {
|
|
15226
15492
|
if (!document.body.contains(bodyView)) {
|
|
15227
15493
|
clearRemoteFleetTimers(bodyView);
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mainAssemblyName": "MindExecution.Web",
|
|
3
3
|
"resources": {
|
|
4
|
-
"hash": "sha256-
|
|
4
|
+
"hash": "sha256-9JUxLgIdet6zJ56ZG7ShauqiLsfwURY2wj+UzGbhN6o=",
|
|
5
5
|
"fingerprinting": {
|
|
6
6
|
"Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
|
|
7
7
|
"Markdig.d1j7v41cl1.dll": "Markdig.dll",
|
|
@@ -123,16 +123,16 @@
|
|
|
123
123
|
"System.brmz7yk5qh.dll": "System.dll",
|
|
124
124
|
"netstandard.yvr3prsx0x.dll": "netstandard.dll",
|
|
125
125
|
"System.Private.CoreLib.ns29bor93l.dll": "System.Private.CoreLib.dll",
|
|
126
|
-
"MindExecution.Core.
|
|
127
|
-
"MindExecution.Kernel.
|
|
128
|
-
"MindExecution.Plugins.Admin.
|
|
129
|
-
"MindExecution.Plugins.Business.
|
|
130
|
-
"MindExecution.Plugins.Concept.
|
|
131
|
-
"MindExecution.Plugins.Directory.
|
|
132
|
-
"MindExecution.Plugins.PlanMaster.
|
|
133
|
-
"MindExecution.Plugins.YouTube.
|
|
134
|
-
"MindExecution.Shared.
|
|
135
|
-
"MindExecution.Web.
|
|
126
|
+
"MindExecution.Core.07ktly047n.dll": "MindExecution.Core.dll",
|
|
127
|
+
"MindExecution.Kernel.jgfwunsvz4.dll": "MindExecution.Kernel.dll",
|
|
128
|
+
"MindExecution.Plugins.Admin.uz1ws5p7x5.dll": "MindExecution.Plugins.Admin.dll",
|
|
129
|
+
"MindExecution.Plugins.Business.yeedyl4etv.dll": "MindExecution.Plugins.Business.dll",
|
|
130
|
+
"MindExecution.Plugins.Concept.i8wxwseow8.dll": "MindExecution.Plugins.Concept.dll",
|
|
131
|
+
"MindExecution.Plugins.Directory.mbuksx1hqq.dll": "MindExecution.Plugins.Directory.dll",
|
|
132
|
+
"MindExecution.Plugins.PlanMaster.vp3cl6bvxb.dll": "MindExecution.Plugins.PlanMaster.dll",
|
|
133
|
+
"MindExecution.Plugins.YouTube.snkp6shzuk.dll": "MindExecution.Plugins.YouTube.dll",
|
|
134
|
+
"MindExecution.Shared.irzb0k7hye.dll": "MindExecution.Shared.dll",
|
|
135
|
+
"MindExecution.Web.td6ps8xw4t.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",
|
|
@@ -278,18 +278,18 @@
|
|
|
278
278
|
"System.Xml.XDocument.sn51jas17n.dll": "sha256-GNI2kFgFmPTwzuzwUn8gxK+AzGLUWRJFdg9JzIbrybQ=",
|
|
279
279
|
"System.brmz7yk5qh.dll": "sha256-CfM2miyj1KHApFmqMdLYWio3S/jrdON2pW9Xr2nTwlo=",
|
|
280
280
|
"netstandard.yvr3prsx0x.dll": "sha256-EksNn8Luo4bOWqJ6X7dIe9qG9oOqwOVzjH2xYyMNi+E=",
|
|
281
|
-
"MindExecution.Core.
|
|
282
|
-
"MindExecution.Kernel.
|
|
283
|
-
"MindExecution.Plugins.Concept.
|
|
284
|
-
"MindExecution.Plugins.PlanMaster.
|
|
285
|
-
"MindExecution.Shared.
|
|
286
|
-
"MindExecution.Web.
|
|
281
|
+
"MindExecution.Core.07ktly047n.dll": "sha256-hPd6g1aLjuHKYrK39vB2e2zNIT03JHDIOogVdJisxpg=",
|
|
282
|
+
"MindExecution.Kernel.jgfwunsvz4.dll": "sha256-QzAvoq5JLTdZZjwWkIuHVhCHFMjw92dGhzrYo0NM978=",
|
|
283
|
+
"MindExecution.Plugins.Concept.i8wxwseow8.dll": "sha256-chFP/WITGF1EPbkmHMqQmY90WQwsNG7jI+gjohLg744=",
|
|
284
|
+
"MindExecution.Plugins.PlanMaster.vp3cl6bvxb.dll": "sha256-0xofgEHFyL96OcvSI34znXAL5ruOaGdGsci5Sh5T+mI=",
|
|
285
|
+
"MindExecution.Shared.irzb0k7hye.dll": "sha256-MvbceH+10w3Ss5amK8K4BC4Hx6trEMyXe1vAXQSdDyA=",
|
|
286
|
+
"MindExecution.Web.td6ps8xw4t.dll": "sha256-b0daeUMZRom6Z1kV+P0QhVWDaovg0QbC91vQIvA2ClQ="
|
|
287
287
|
},
|
|
288
288
|
"lazyAssembly": {
|
|
289
|
-
"MindExecution.Plugins.Admin.
|
|
290
|
-
"MindExecution.Plugins.Business.
|
|
291
|
-
"MindExecution.Plugins.Directory.
|
|
292
|
-
"MindExecution.Plugins.YouTube.
|
|
289
|
+
"MindExecution.Plugins.Admin.uz1ws5p7x5.dll": "sha256-5g1F71Jv0PP/HXccx2jBR5k8bgq2d2dK8XDYyObESnc=",
|
|
290
|
+
"MindExecution.Plugins.Business.yeedyl4etv.dll": "sha256-OiBtEdBJooJG9IAH2Zuhfh2NsJEtpbLoJ+jnC3a9VPU=",
|
|
291
|
+
"MindExecution.Plugins.Directory.mbuksx1hqq.dll": "sha256-fhmxuuTKS1ndouHTj3FSu+KwUqWILi9nJAN1WJabAIs=",
|
|
292
|
+
"MindExecution.Plugins.YouTube.snkp6shzuk.dll": "sha256-KEV5qk5uwybBSFgCjGFWSO07ZObjBSXhi6iP41dyxt0="
|
|
293
293
|
}
|
|
294
294
|
},
|
|
295
295
|
"cacheBootResources": true,
|
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=20260614-remote-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260614-remote-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260614-remote-realtime-frame-v512" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260614-remote-realtime-frame-v512" />
|
|
12
12
|
<!-- ?쇄뼹??Font Awesome (local) ?쇄뼹??-->
|
|
13
13
|
<link rel="stylesheet" href="_content/MindExecution.Shared/lib/font-awesome/css/all.min.css" />
|
|
14
14
|
<!-- ?꿎뼯??-->
|
|
@@ -558,7 +558,7 @@
|
|
|
558
558
|
}
|
|
559
559
|
|
|
560
560
|
const base = '_content/MindExecution.Shared/js/';
|
|
561
|
-
const scriptVersion = '20260614-remote-
|
|
561
|
+
const scriptVersion = '20260614-remote-realtime-frame-v512';
|
|
562
562
|
const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
|
|
563
563
|
console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
|
|
564
564
|
const criticalScripts = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
self.assetsManifest = {
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "kgm0PdX0",
|
|
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-V1OuXmwqGhSExZg1kWPPENZLaSPZWu/q/PgBwC3cQwg=",
|
|
90
90
|
"url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
@@ -410,44 +410,44 @@
|
|
|
410
410
|
"url": "_framework/MimeMapping.og9ys58ylm.dll"
|
|
411
411
|
},
|
|
412
412
|
{
|
|
413
|
-
"hash": "sha256-
|
|
414
|
-
"url": "_framework/MindExecution.Core.
|
|
413
|
+
"hash": "sha256-hPd6g1aLjuHKYrK39vB2e2zNIT03JHDIOogVdJisxpg=",
|
|
414
|
+
"url": "_framework/MindExecution.Core.07ktly047n.dll"
|
|
415
415
|
},
|
|
416
416
|
{
|
|
417
|
-
"hash": "sha256-
|
|
418
|
-
"url": "_framework/MindExecution.Kernel.
|
|
417
|
+
"hash": "sha256-QzAvoq5JLTdZZjwWkIuHVhCHFMjw92dGhzrYo0NM978=",
|
|
418
|
+
"url": "_framework/MindExecution.Kernel.jgfwunsvz4.dll"
|
|
419
419
|
},
|
|
420
420
|
{
|
|
421
|
-
"hash": "sha256-
|
|
422
|
-
"url": "_framework/MindExecution.Plugins.Admin.
|
|
421
|
+
"hash": "sha256-5g1F71Jv0PP/HXccx2jBR5k8bgq2d2dK8XDYyObESnc=",
|
|
422
|
+
"url": "_framework/MindExecution.Plugins.Admin.uz1ws5p7x5.dll"
|
|
423
423
|
},
|
|
424
424
|
{
|
|
425
|
-
"hash": "sha256-
|
|
426
|
-
"url": "_framework/MindExecution.Plugins.Business.
|
|
425
|
+
"hash": "sha256-OiBtEdBJooJG9IAH2Zuhfh2NsJEtpbLoJ+jnC3a9VPU=",
|
|
426
|
+
"url": "_framework/MindExecution.Plugins.Business.yeedyl4etv.dll"
|
|
427
427
|
},
|
|
428
428
|
{
|
|
429
|
-
"hash": "sha256-
|
|
430
|
-
"url": "_framework/MindExecution.Plugins.Concept.
|
|
429
|
+
"hash": "sha256-chFP/WITGF1EPbkmHMqQmY90WQwsNG7jI+gjohLg744=",
|
|
430
|
+
"url": "_framework/MindExecution.Plugins.Concept.i8wxwseow8.dll"
|
|
431
431
|
},
|
|
432
432
|
{
|
|
433
|
-
"hash": "sha256-
|
|
434
|
-
"url": "_framework/MindExecution.Plugins.Directory.
|
|
433
|
+
"hash": "sha256-fhmxuuTKS1ndouHTj3FSu+KwUqWILi9nJAN1WJabAIs=",
|
|
434
|
+
"url": "_framework/MindExecution.Plugins.Directory.mbuksx1hqq.dll"
|
|
435
435
|
},
|
|
436
436
|
{
|
|
437
|
-
"hash": "sha256-
|
|
438
|
-
"url": "_framework/MindExecution.Plugins.PlanMaster.
|
|
437
|
+
"hash": "sha256-0xofgEHFyL96OcvSI34znXAL5ruOaGdGsci5Sh5T+mI=",
|
|
438
|
+
"url": "_framework/MindExecution.Plugins.PlanMaster.vp3cl6bvxb.dll"
|
|
439
439
|
},
|
|
440
440
|
{
|
|
441
|
-
"hash": "sha256-
|
|
442
|
-
"url": "_framework/MindExecution.Plugins.YouTube.
|
|
441
|
+
"hash": "sha256-KEV5qk5uwybBSFgCjGFWSO07ZObjBSXhi6iP41dyxt0=",
|
|
442
|
+
"url": "_framework/MindExecution.Plugins.YouTube.snkp6shzuk.dll"
|
|
443
443
|
},
|
|
444
444
|
{
|
|
445
|
-
"hash": "sha256-
|
|
446
|
-
"url": "_framework/MindExecution.Shared.
|
|
445
|
+
"hash": "sha256-MvbceH+10w3Ss5amK8K4BC4Hx6trEMyXe1vAXQSdDyA=",
|
|
446
|
+
"url": "_framework/MindExecution.Shared.irzb0k7hye.dll"
|
|
447
447
|
},
|
|
448
448
|
{
|
|
449
|
-
"hash": "sha256-
|
|
450
|
-
"url": "_framework/MindExecution.Web.
|
|
449
|
+
"hash": "sha256-b0daeUMZRom6Z1kV+P0QhVWDaovg0QbC91vQIvA2ClQ=",
|
|
450
|
+
"url": "_framework/MindExecution.Web.td6ps8xw4t.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-
|
|
773
|
+
"hash": "sha256-wGyB8Myog0UDbOOCHb4dhxOV/v55f4CdT7ZvxeRk7Z4=",
|
|
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-
|
|
837
|
+
"hash": "sha256-9BW4+BDrFuEuMemTbJ1oaH74zwmzsmqIe1JmRtmlqEg=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|
|
Binary file
|
|
Binary file
|