@mindexec/cli 0.2.148 → 0.2.149
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
|
@@ -1216,6 +1216,10 @@ try {
|
|
|
1216
1216
|
assert.equal(bodyView.textContent.includes('No screen'), false);
|
|
1217
1217
|
assert.equal(bodyView.textContent.includes('@mindexec/cli'), false);
|
|
1218
1218
|
assert.equal(nodeShell.querySelector('[data-remote-fleet-host-indicator="true"]')?.dataset.remoteFleetHostActive, 'false');
|
|
1219
|
+
const { nodeShell: hostMirrorShell, bodyView: hostMirrorBodyView } = createRemoteFleetTemplateShell(document, focusedDevice.DeviceId);
|
|
1220
|
+
document.body.appendChild(hostMirrorShell);
|
|
1221
|
+
manager.renderRemoteFleetMonitorForTest(hostMirrorBodyView, monitorNode);
|
|
1222
|
+
assert.equal(hostMirrorShell.querySelector('[data-remote-fleet-host-indicator="true"]')?.dataset.remoteFleetHostActive, 'false');
|
|
1219
1223
|
const initialHostButton = nodeShell.querySelector('[data-remote-fleet-action="set-host"]');
|
|
1220
1224
|
assert.equal(initialHostButton?.textContent, 'Set Host');
|
|
1221
1225
|
initialHostButton.dispatchEvent({ type: 'click' });
|
|
@@ -1227,6 +1231,17 @@ try {
|
|
|
1227
1231
|
const hostFeedback = bodyView.querySelector('[data-remote-fleet-task-feedback="true"]');
|
|
1228
1232
|
assert.equal(hostFeedback?.style.display, 'none');
|
|
1229
1233
|
assert.equal(hostFeedback?.textContent, '');
|
|
1234
|
+
assert.equal(nodeShell.querySelector('[data-remote-fleet-host-indicator="true"]')?.dataset.remoteFleetHostActive, 'true');
|
|
1235
|
+
assert.equal(hostMirrorShell.querySelector('[data-remote-fleet-host-indicator="true"]')?.dataset.remoteFleetHostActive, 'true');
|
|
1236
|
+
assert.ok(diagnostics.textOverlayInvalidations.some(entry =>
|
|
1237
|
+
entry.nodeId === 'remote-fleet-render-smoke'
|
|
1238
|
+
&& entry.reason === 'remote-monitor-host'));
|
|
1239
|
+
assert.ok(diagnostics.runtimeTrace.some(entry =>
|
|
1240
|
+
entry.type === 'remote.monitor.projectionInvalidated'
|
|
1241
|
+
&& entry.nodeId === 'remote-fleet-render-smoke'
|
|
1242
|
+
&& entry.reason === 'host'
|
|
1243
|
+
&& entry.overlayInvalidated === true));
|
|
1244
|
+
hostMirrorShell.remove();
|
|
1230
1245
|
|
|
1231
1246
|
hub.setHostTarget({
|
|
1232
1247
|
nodeId: 'remote-fleet-render-smoke',
|
|
@@ -13652,6 +13652,52 @@
|
|
|
13652
13652
|
return nodeState;
|
|
13653
13653
|
}
|
|
13654
13654
|
|
|
13655
|
+
function applyRemoteFleetHostTargetResultToNodeModel(nodeModel, nodeId, enabled, result) {
|
|
13656
|
+
const id = String(nodeId || '').trim();
|
|
13657
|
+
if (!nodeModel || !id || !isRemoteFleetResultSuccess(result)) {
|
|
13658
|
+
return false;
|
|
13659
|
+
}
|
|
13660
|
+
|
|
13661
|
+
const metadata = ensureNodeMetadata(nodeModel);
|
|
13662
|
+
if (!metadata) {
|
|
13663
|
+
return false;
|
|
13664
|
+
}
|
|
13665
|
+
|
|
13666
|
+
const registryStatus = String(result?.registryStatus || result?.RegistryStatus || '').trim();
|
|
13667
|
+
const registryReason = String(result?.registryReason || result?.RegistryReason || '').trim();
|
|
13668
|
+
if (registryStatus) {
|
|
13669
|
+
metadata.RemoteFleetRegistryStatus = registryStatus;
|
|
13670
|
+
}
|
|
13671
|
+
if (registryReason) {
|
|
13672
|
+
metadata.RemoteFleetRegistryReason = registryReason;
|
|
13673
|
+
}
|
|
13674
|
+
|
|
13675
|
+
const active = enabled === true && isRemoteFleetResultActive(result);
|
|
13676
|
+
if (active) {
|
|
13677
|
+
applyRemoteFleetLocalHostTarget(nodeModel);
|
|
13678
|
+
metadata.RemoteFleetHostTargetState = 'hosting';
|
|
13679
|
+
metadata.RemoteFleetHostTargetNodeId = id;
|
|
13680
|
+
const hostTarget = result?.hostTarget || result?.HostTarget || {};
|
|
13681
|
+
const now = new Date().toISOString();
|
|
13682
|
+
metadata.RemoteFleetHostTargetLeaseId = String(readRemoteFleetObjectField(hostTarget, 'leaseId', 'LeaseId', metadata.RemoteFleetHostTargetLeaseId || '') || '').trim();
|
|
13683
|
+
metadata.RemoteFleetHostTargetEndpoint = String(readRemoteFleetObjectField(hostTarget, 'endpoint', 'Endpoint', metadata.RemoteFleetHostTargetEndpoint || metadata.RemoteFleetHubEndpoint || '') || '').trim();
|
|
13684
|
+
metadata.RemoteFleetHostTargetActivatedAtUtc = String(readRemoteFleetObjectField(hostTarget, 'activatedAt', 'ActivatedAt', metadata.RemoteFleetHostTargetActivatedAtUtc || now) || '').trim();
|
|
13685
|
+
metadata.RemoteFleetHostTargetUpdatedAtUtc = String(readRemoteFleetObjectField(hostTarget, 'updatedAt', 'UpdatedAt', now) || '').trim();
|
|
13686
|
+
metadata.RemoteFleetHostTargetExpiresAtUtc = String(readRemoteFleetObjectField(hostTarget, 'expiresAt', 'ExpiresAt', metadata.RemoteFleetHostTargetExpiresAtUtc || '') || '').trim();
|
|
13687
|
+
} else if (enabled !== true || isRemoteFleetResultExplicitlyInactive(result)) {
|
|
13688
|
+
metadata.RemoteFleetHostTargetState = 'inactive';
|
|
13689
|
+
metadata.RemoteFleetHostTargetNodeId = '';
|
|
13690
|
+
metadata.RemoteFleetHostTargetLeaseId = '';
|
|
13691
|
+
metadata.RemoteFleetHostTargetActivatedAtUtc = '';
|
|
13692
|
+
metadata.RemoteFleetHostTargetUpdatedAtUtc = '';
|
|
13693
|
+
metadata.RemoteFleetHostTargetExpiresAtUtc = '';
|
|
13694
|
+
}
|
|
13695
|
+
|
|
13696
|
+
nodeModel.metadata = metadata;
|
|
13697
|
+
nodeModel.Metadata = metadata;
|
|
13698
|
+
return true;
|
|
13699
|
+
}
|
|
13700
|
+
|
|
13655
13701
|
function clearRemoteFleetTimers(bodyView, options = {}) {
|
|
13656
13702
|
if (!bodyView) return;
|
|
13657
13703
|
if (options.keepBinaryFrameSocket !== true) {
|
|
@@ -13925,6 +13971,35 @@
|
|
|
13925
13971
|
return synced;
|
|
13926
13972
|
}
|
|
13927
13973
|
|
|
13974
|
+
function renderRemoteFleetMonitorSurfaces(nodeId, nodeModel, sourceBodyView = null) {
|
|
13975
|
+
const id = String(nodeId || '').trim();
|
|
13976
|
+
if (!id || !nodeModel) {
|
|
13977
|
+
return 0;
|
|
13978
|
+
}
|
|
13979
|
+
|
|
13980
|
+
const escapedId = cssEscapeValue(id);
|
|
13981
|
+
const bodies = new Set([
|
|
13982
|
+
...Array.from(document.querySelectorAll(`.template-card__remote-fleet-body[data-node-id="${escapedId}"]`)),
|
|
13983
|
+
...Array.from(document.querySelectorAll(`.template-card__remote-fleet-body[data-remote-fleet-monitor-node-id="${escapedId}"]`))
|
|
13984
|
+
]);
|
|
13985
|
+
|
|
13986
|
+
if (sourceBodyView) {
|
|
13987
|
+
bodies.add(sourceBodyView);
|
|
13988
|
+
}
|
|
13989
|
+
|
|
13990
|
+
let rendered = 0;
|
|
13991
|
+
bodies.forEach(body => {
|
|
13992
|
+
if (!body) {
|
|
13993
|
+
return;
|
|
13994
|
+
}
|
|
13995
|
+
|
|
13996
|
+
renderRemoteFleetMonitor(body, nodeModel);
|
|
13997
|
+
rendered += 1;
|
|
13998
|
+
});
|
|
13999
|
+
|
|
14000
|
+
return rendered;
|
|
14001
|
+
}
|
|
14002
|
+
|
|
13928
14003
|
function invalidateRemoteFleetMonitorProjection(nodeId, sizeState, reason = 'size') {
|
|
13929
14004
|
const id = String(nodeId || '').trim();
|
|
13930
14005
|
if (!_module || !id) {
|
|
@@ -13944,11 +14019,16 @@
|
|
|
13944
14019
|
_module._css3dVisualChangedThisFrame = true;
|
|
13945
14020
|
_module._css3dVisualChangedSinceLastRender = true;
|
|
13946
14021
|
wakeRemoteFleetModuleAnimation(_module, `remote-monitor-${reason}`);
|
|
13947
|
-
|
|
14022
|
+
const tracePayload = {
|
|
13948
14023
|
nodeId: id,
|
|
13949
14024
|
density: normalizeRemoteFleetMonitorSize(sizeState),
|
|
14025
|
+
reason: String(reason || 'projection'),
|
|
13950
14026
|
overlayInvalidated: invalidated
|
|
13951
|
-
}
|
|
14027
|
+
};
|
|
14028
|
+
window.RuntimeTrace?.emit?.('remote.monitor.projectionInvalidated', tracePayload);
|
|
14029
|
+
if (reason === 'size') {
|
|
14030
|
+
window.RuntimeTrace?.emit?.('remote.monitor.sizeChanged', tracePayload);
|
|
14031
|
+
}
|
|
13952
14032
|
return invalidated;
|
|
13953
14033
|
}
|
|
13954
14034
|
|
|
@@ -18117,6 +18197,10 @@
|
|
|
18117
18197
|
rememberRemoteFleetLocalHostTarget(nodeId, enabled === true, result);
|
|
18118
18198
|
if (isRemoteFleetResultSuccess(result)) {
|
|
18119
18199
|
rememberRemoteFleetAutoHostPreference(nodeId, enabled === true && isRemoteFleetResultActive(result));
|
|
18200
|
+
if (applyRemoteFleetHostTargetResultToNodeModel(nodeModel, nodeId, enabled === true, result)) {
|
|
18201
|
+
renderRemoteFleetMonitorSurfaces(nodeId, nodeModel, bodyView);
|
|
18202
|
+
invalidateRemoteFleetMonitorProjection(nodeId, bodyView.dataset.remoteFleetDensity || densityState, 'host');
|
|
18203
|
+
}
|
|
18120
18204
|
}
|
|
18121
18205
|
if (quiet) {
|
|
18122
18206
|
if (!isRemoteFleetResultSuccess(result) || !isRemoteFleetResultActive(result)) {
|
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=20260617-mdm-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260617-mdm-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260617-mdm-host-lamp-v584" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260617-mdm-host-lamp-v584" />
|
|
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 = '20260617-mdm-
|
|
582
|
+
const scriptVersion = '20260617-mdm-host-lamp-v584';
|
|
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": "D5pcdHTt",
|
|
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-RSQ+302zp4KqLtkoQdqlFYULUOqzi/VO90NwHsGKcl8=",
|
|
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-cQP7X8qq+FUS4hnGN9p8Gya3DsWc9dEG/9XlQWuu1Ms=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|