@mindexec/cli 0.2.54 → 0.2.56

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindexec/cli",
3
- "version": "0.2.54",
3
+ "version": "0.2.56",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -684,7 +684,9 @@ try {
684
684
  if (methodName === 'SetRemoteFleetHostFromJs') {
685
685
  return {
686
686
  success: true,
687
- active: args[1] === true
687
+ active: args[1] === true,
688
+ registryStatus: args[1] === true ? 'local' : 'inactive',
689
+ registryReason: args[1] === true ? 'registry-render-smoke' : 'inactive'
688
690
  };
689
691
  }
690
692
 
@@ -713,7 +715,8 @@ try {
713
715
  assert.ok(bodyChildOrder.endsWith('remoteFleetStatusRail'), bodyChildOrder);
714
716
  assert.ok(statusFooter.style.cssText.includes('flex-direction: row'));
715
717
  assert.match(statusFooter.style.cssText, /box-sizing:\s*border-box;/);
716
- assert.equal(statusFooter.querySelectorAll('[data-remote-fleet-status-item]').length, 4);
718
+ assert.equal(statusFooter.querySelectorAll('[data-remote-fleet-status-item]').length, 5);
719
+ assert.ok(statusFooter.querySelector('[data-remote-fleet-status-item="route"]'));
717
720
  const initialDetailPanel = bodyView.querySelector('[data-remote-fleet-detail-panel="true"]');
718
721
  assert.equal(initialDetailPanel?.dataset.deviceId, focusedDevice.DeviceId);
719
722
  assert.equal(bodyView.querySelectorAll('[data-remote-fleet-action="pin-device"]').length, 1);
@@ -12541,6 +12541,7 @@
12541
12541
  const tone = String(item?.tone || 'default');
12542
12542
  const row = document.createElement('div');
12543
12543
  row.dataset.remoteFleetStatusItem = item?.key || '';
12544
+ row.title = String(item?.title || '').trim();
12544
12545
  row.style.cssText = `
12545
12546
  flex: 0 0 auto;
12546
12547
  display: inline-flex;
@@ -12580,7 +12581,8 @@
12580
12581
 
12581
12582
  const valueEl = document.createElement('strong');
12582
12583
  valueEl.textContent = item?.value || '';
12583
- valueEl.title = `${labelEl.textContent} ${valueEl.textContent}`.trim();
12584
+ valueEl.title = String(item?.title || '').trim()
12585
+ || `${labelEl.textContent} ${valueEl.textContent}`.trim();
12584
12586
  valueEl.style.cssText = `
12585
12587
  color: ${tone === 'online' ? '#047857' : '#0f172a'};
12586
12588
  font-size: 10px;
@@ -12602,6 +12604,75 @@
12602
12604
  return rail;
12603
12605
  }
12604
12606
 
12607
+ function getRemoteFleetRegistryRouteInfo(registryStatus, registryReason, hostTargetState) {
12608
+ const status = String(registryStatus || '').trim().toLowerCase();
12609
+ const reason = String(registryReason || '').trim();
12610
+ const hostState = String(hostTargetState || '').trim().toLowerCase();
12611
+
12612
+ if (hostState === 'other-monitor') {
12613
+ return {
12614
+ value: 'Other',
12615
+ tone: 'default',
12616
+ title: reason || 'Another monitor currently owns the host route.'
12617
+ };
12618
+ }
12619
+
12620
+ if (hostState !== 'hosting') {
12621
+ return {
12622
+ value: 'Idle',
12623
+ tone: 'default',
12624
+ title: reason || 'No active host route.'
12625
+ };
12626
+ }
12627
+
12628
+ if (status === 'account') {
12629
+ return {
12630
+ value: 'Account',
12631
+ tone: 'online',
12632
+ title: reason || 'Published to the account route registry for same-account agent pairing.'
12633
+ };
12634
+ }
12635
+
12636
+ if (status === 'blocked') {
12637
+ return {
12638
+ value: 'Blocked',
12639
+ tone: 'warn',
12640
+ title: reason || 'The local host is active, but account route publishing failed.'
12641
+ };
12642
+ }
12643
+
12644
+ return {
12645
+ value: 'Local',
12646
+ tone: 'warn',
12647
+ title: reason || 'The local host is active, but account route publishing is not available.'
12648
+ };
12649
+ }
12650
+
12651
+ function getRemoteFleetResultRegistryStatus(result) {
12652
+ return String(result?.registryStatus ?? result?.RegistryStatus ?? '').trim().toLowerCase();
12653
+ }
12654
+
12655
+ function getRemoteFleetHostFeedbackText(enabled, result) {
12656
+ if (enabled !== true) {
12657
+ return 'Host target stopped.';
12658
+ }
12659
+
12660
+ const status = getRemoteFleetResultRegistryStatus(result);
12661
+ if (status === 'account') {
12662
+ return 'Host target set.';
12663
+ }
12664
+
12665
+ if (status === 'local') {
12666
+ return 'Host set locally. Account route pending.';
12667
+ }
12668
+
12669
+ if (status === 'blocked') {
12670
+ return 'Host route blocked.';
12671
+ }
12672
+
12673
+ return 'Host target set.';
12674
+ }
12675
+
12605
12676
  function createRemoteFleetButton(label, title, action) {
12606
12677
  const button = document.createElement('button');
12607
12678
  button.type = 'button';
@@ -14135,6 +14206,9 @@
14135
14206
  const refreshedAt = getRemoteFleetMetadataValue(nodeModel, 'RemoteFleetLastRefreshAtUtc', '');
14136
14207
  const lastError = getRemoteFleetMetadataValue(nodeModel, 'RemoteFleetLastError', '');
14137
14208
  const hostTargetState = String(getRemoteFleetMetadataValue(nodeModel, 'RemoteFleetHostTargetState', 'inactive')).trim().toLowerCase();
14209
+ const registryStatus = String(getRemoteFleetMetadataValue(nodeModel, 'RemoteFleetRegistryStatus', '')).trim().toLowerCase();
14210
+ const registryReason = String(getRemoteFleetMetadataValue(nodeModel, 'RemoteFleetRegistryReason', '')).trim();
14211
+ const routeInfo = getRemoteFleetRegistryRouteInfo(registryStatus, registryReason, hostTargetState);
14138
14212
  const isHostingTarget = hostTargetState === 'hosting';
14139
14213
 
14140
14214
  if (!isHostingTarget) {
@@ -14203,6 +14277,13 @@
14203
14277
  label: 'AI',
14204
14278
  value: String(aiCapableCount),
14205
14279
  tone: aiCapableCount > 0 ? 'online' : 'default'
14280
+ },
14281
+ {
14282
+ key: 'route',
14283
+ label: 'Route',
14284
+ value: routeInfo.value,
14285
+ tone: routeInfo.tone,
14286
+ title: routeInfo.title
14206
14287
  }
14207
14288
  ], lastError);
14208
14289
 
@@ -15510,6 +15591,8 @@
15510
15591
  renew: renew === true,
15511
15592
  success: isRemoteFleetResultSuccess(result),
15512
15593
  active: isRemoteFleetResultActive(result),
15594
+ registryStatus: result?.registryStatus || result?.RegistryStatus || '',
15595
+ registryReason: result?.registryReason || result?.RegistryReason || '',
15513
15596
  error: result?.error || result?.Error || ''
15514
15597
  });
15515
15598
  rememberRemoteFleetLocalHostTarget(nodeId, enabled === true, result);
@@ -15524,7 +15607,7 @@
15524
15607
  stopRemoteFleetHostLeaseTimer(nodeId);
15525
15608
  }
15526
15609
  if (isRemoteFleetResultSuccess(result)) {
15527
- setTaskFeedback(enabled ? 'Host target set.' : 'Host target stopped.', 'success');
15610
+ setTaskFeedback(getRemoteFleetHostFeedbackText(enabled, result), 'success');
15528
15611
  } else {
15529
15612
  setTaskFeedback(result?.error || result?.Error || 'Host target update failed.', 'error');
15530
15613
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "MindExecution.Web",
3
3
  "resources": {
4
- "hash": "sha256-FI1aVvJXZHMtJ4l634osWbTe8sQ5rfdCKfSBgDnqQ70=",
4
+ "hash": "sha256-/5JRqqpOVCbTaf/1StsYKfdTMQiwrtDXWYuuTS2bGro=",
5
5
  "fingerprinting": {
6
6
  "Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
7
7
  "Markdig.d1j7v41cl1.dll": "Markdig.dll",
@@ -122,17 +122,17 @@
122
122
  "System.Xml.XDocument.sn51jas17n.dll": "System.Xml.XDocument.dll",
123
123
  "System.brmz7yk5qh.dll": "System.dll",
124
124
  "netstandard.yvr3prsx0x.dll": "netstandard.dll",
125
- "System.Private.CoreLib.ns29bor93l.dll": "System.Private.CoreLib.dll",
125
+ "System.Private.CoreLib.56o0tq2bfs.dll": "System.Private.CoreLib.dll",
126
126
  "MindExecution.Core.fu1rl67yt3.dll": "MindExecution.Core.dll",
127
127
  "MindExecution.Kernel.cqcbagjpqb.dll": "MindExecution.Kernel.dll",
128
128
  "MindExecution.Plugins.Admin.tsn0j478un.dll": "MindExecution.Plugins.Admin.dll",
129
129
  "MindExecution.Plugins.Business.xg74dmn0vz.dll": "MindExecution.Plugins.Business.dll",
130
- "MindExecution.Plugins.Concept.j0zntvuecv.dll": "MindExecution.Plugins.Concept.dll",
130
+ "MindExecution.Plugins.Concept.rk2v1mregp.dll": "MindExecution.Plugins.Concept.dll",
131
131
  "MindExecution.Plugins.Directory.9i4bd043ia.dll": "MindExecution.Plugins.Directory.dll",
132
- "MindExecution.Plugins.PlanMaster.vml3qie2ji.dll": "MindExecution.Plugins.PlanMaster.dll",
133
- "MindExecution.Plugins.YouTube.0gfbwq1jfg.dll": "MindExecution.Plugins.YouTube.dll",
134
- "MindExecution.Shared.f3bclzo6k4.dll": "MindExecution.Shared.dll",
135
- "MindExecution.Web.4jhsxoiqgz.dll": "MindExecution.Web.dll",
132
+ "MindExecution.Plugins.PlanMaster.jeb1nqbo47.dll": "MindExecution.Plugins.PlanMaster.dll",
133
+ "MindExecution.Plugins.YouTube.ebkxnv7skl.dll": "MindExecution.Plugins.YouTube.dll",
134
+ "MindExecution.Shared.d3rbkwpyfs.dll": "MindExecution.Shared.dll",
135
+ "MindExecution.Web.euk5xejxws.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",
@@ -157,7 +157,7 @@
157
157
  },
158
158
  "coreAssembly": {
159
159
  "System.Runtime.InteropServices.JavaScript.pn2wvizzet.dll": "sha256-dczkyi5P7nETlP7roYWNE0BobJPm6wyt7Bc+ZhBu3NA=",
160
- "System.Private.CoreLib.ns29bor93l.dll": "sha256-Z7GdIxVX0shZxK4zG7tl4Q4sfRwvmLYJTJb9EdY8OXs="
160
+ "System.Private.CoreLib.56o0tq2bfs.dll": "sha256-o8ApCPSzBaLu6/9iPmEpeRzQvqPTurKTV0NDp4f0CY8="
161
161
  },
162
162
  "assembly": {
163
163
  "Google.Protobuf.9h59ukbel7.dll": "sha256-A541k1abRTWr6MqmCXfGDYcKHirypJS19mzPQu3lJt0=",
@@ -280,16 +280,16 @@
280
280
  "netstandard.yvr3prsx0x.dll": "sha256-EksNn8Luo4bOWqJ6X7dIe9qG9oOqwOVzjH2xYyMNi+E=",
281
281
  "MindExecution.Core.fu1rl67yt3.dll": "sha256-6cDbehKdjX71zeL9Ro5GNupn7wqRYfb7yLW2w3Wp05g=",
282
282
  "MindExecution.Kernel.cqcbagjpqb.dll": "sha256-zPB0tmwi/UKdJ//g0xMH1Y02ahDX5ii6ZKdB3yiQQz4=",
283
- "MindExecution.Plugins.Concept.j0zntvuecv.dll": "sha256-/XUaopvgQk71o+jBdb3ljhCAQkXrda6XxCzS0242pIo=",
284
- "MindExecution.Plugins.PlanMaster.vml3qie2ji.dll": "sha256-uS3p/j4Kq171sz/xkiEn08DZni3X6HLbq2OHsYcxIjg=",
285
- "MindExecution.Shared.f3bclzo6k4.dll": "sha256-1ZuF0eTN8dm8o0BzDJX+lyuKB1Wlc8MO2+kPJx/TYec=",
286
- "MindExecution.Web.4jhsxoiqgz.dll": "sha256-QPegscpX6rm9Fp7lPqHdeKDVUFshfip6frFo62NWuss="
283
+ "MindExecution.Plugins.Concept.rk2v1mregp.dll": "sha256-NfgDpyHQQa/DuAguwwNgKKx1eFBTA4dIKSXG/PPrYKw=",
284
+ "MindExecution.Plugins.PlanMaster.jeb1nqbo47.dll": "sha256-BUFRRmvfLyWCo56fcGO0R4AQxhvbngN0mS54vHihx3g=",
285
+ "MindExecution.Shared.d3rbkwpyfs.dll": "sha256-6YHJgYtgnxAV99SKKDb4AMGnm59WPnt0wAKnT/JW0Io=",
286
+ "MindExecution.Web.euk5xejxws.dll": "sha256-xiHLTKxHUbEab8UTz16/fmpwQf4/+zp/bIYzllYm9gQ="
287
287
  },
288
288
  "lazyAssembly": {
289
289
  "MindExecution.Plugins.Admin.tsn0j478un.dll": "sha256-g5Q4Ihy2PJKx6EFB6k78dIszLgK4hZ3Xintjvso/zmw=",
290
290
  "MindExecution.Plugins.Business.xg74dmn0vz.dll": "sha256-0bP/QgMyXSk9IlQVun63rnWvkwqqZmJcRe90QoPC6jw=",
291
291
  "MindExecution.Plugins.Directory.9i4bd043ia.dll": "sha256-b+fpVz2RkQC8uL4dIvN6wMWWefoII84Jyfe85EU/URk=",
292
- "MindExecution.Plugins.YouTube.0gfbwq1jfg.dll": "sha256-EEXiqTRw/mDzke0TaI/QAlp2DRCQCfL4lzGSH0pRZ4c="
292
+ "MindExecution.Plugins.YouTube.ebkxnv7skl.dll": "sha256-5ldw1KApIdyPI04cMifDxN2rKBKZENtZXY9GVlYsD/k="
293
293
  }
294
294
  },
295
295
  "cacheBootResources": true,
@@ -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-frame-queue-v514" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260614-remote-frame-queue-v514" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260614-remote-registry-wake-v516" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260614-remote-registry-wake-v516" />
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-frame-queue-v514';
561
+ const scriptVersion = '20260614-remote-registry-wake-v516';
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": "AbrqsGjG",
2
+ "version": "myLeiE66",
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-Ha83zpDlwJT6nxD2wgO3rL3uPBHZvZFxzpnKKHMZhd0=",
89
+ "hash": "sha256-pfqJn3HbG2hf6mQB5J36TJM5Ko6Jj7R0B7EqxBnfo20=",
90
90
  "url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
91
91
  },
92
92
  {
@@ -426,28 +426,28 @@
426
426
  "url": "_framework/MindExecution.Plugins.Business.xg74dmn0vz.dll"
427
427
  },
428
428
  {
429
- "hash": "sha256-/XUaopvgQk71o+jBdb3ljhCAQkXrda6XxCzS0242pIo=",
430
- "url": "_framework/MindExecution.Plugins.Concept.j0zntvuecv.dll"
429
+ "hash": "sha256-NfgDpyHQQa/DuAguwwNgKKx1eFBTA4dIKSXG/PPrYKw=",
430
+ "url": "_framework/MindExecution.Plugins.Concept.rk2v1mregp.dll"
431
431
  },
432
432
  {
433
433
  "hash": "sha256-b+fpVz2RkQC8uL4dIvN6wMWWefoII84Jyfe85EU/URk=",
434
434
  "url": "_framework/MindExecution.Plugins.Directory.9i4bd043ia.dll"
435
435
  },
436
436
  {
437
- "hash": "sha256-uS3p/j4Kq171sz/xkiEn08DZni3X6HLbq2OHsYcxIjg=",
438
- "url": "_framework/MindExecution.Plugins.PlanMaster.vml3qie2ji.dll"
437
+ "hash": "sha256-BUFRRmvfLyWCo56fcGO0R4AQxhvbngN0mS54vHihx3g=",
438
+ "url": "_framework/MindExecution.Plugins.PlanMaster.jeb1nqbo47.dll"
439
439
  },
440
440
  {
441
- "hash": "sha256-EEXiqTRw/mDzke0TaI/QAlp2DRCQCfL4lzGSH0pRZ4c=",
442
- "url": "_framework/MindExecution.Plugins.YouTube.0gfbwq1jfg.dll"
441
+ "hash": "sha256-5ldw1KApIdyPI04cMifDxN2rKBKZENtZXY9GVlYsD/k=",
442
+ "url": "_framework/MindExecution.Plugins.YouTube.ebkxnv7skl.dll"
443
443
  },
444
444
  {
445
- "hash": "sha256-1ZuF0eTN8dm8o0BzDJX+lyuKB1Wlc8MO2+kPJx/TYec=",
446
- "url": "_framework/MindExecution.Shared.f3bclzo6k4.dll"
445
+ "hash": "sha256-6YHJgYtgnxAV99SKKDb4AMGnm59WPnt0wAKnT/JW0Io=",
446
+ "url": "_framework/MindExecution.Shared.d3rbkwpyfs.dll"
447
447
  },
448
448
  {
449
- "hash": "sha256-QPegscpX6rm9Fp7lPqHdeKDVUFshfip6frFo62NWuss=",
450
- "url": "_framework/MindExecution.Web.4jhsxoiqgz.dll"
449
+ "hash": "sha256-xiHLTKxHUbEab8UTz16/fmpwQf4/+zp/bIYzllYm9gQ=",
450
+ "url": "_framework/MindExecution.Web.euk5xejxws.dll"
451
451
  },
452
452
  {
453
453
  "hash": "sha256-IsZJ91/OW+fHzNqIgEc7Y072ns8z9dGritiSyvR9Wgc=",
@@ -634,8 +634,8 @@
634
634
  "url": "_framework/System.ObjectModel.yct1gdirzf.dll"
635
635
  },
636
636
  {
637
- "hash": "sha256-Z7GdIxVX0shZxK4zG7tl4Q4sfRwvmLYJTJb9EdY8OXs=",
638
- "url": "_framework/System.Private.CoreLib.ns29bor93l.dll"
637
+ "hash": "sha256-o8ApCPSzBaLu6/9iPmEpeRzQvqPTurKTV0NDp4f0CY8=",
638
+ "url": "_framework/System.Private.CoreLib.56o0tq2bfs.dll"
639
639
  },
640
640
  {
641
641
  "hash": "sha256-N0SU6xdqSPY526IJFxDdRhKkIdwJvDTPqcanYqbnh+g=",
@@ -770,7 +770,7 @@
770
770
  "url": "_framework/Websocket.Client.vapounvmnl.dll"
771
771
  },
772
772
  {
773
- "hash": "sha256-XdUGtIDw1SDDWXPLtg2RaeuvCW6T6yjMxok5H9KUFaE=",
773
+ "hash": "sha256-fNxEwfCSNkIbZigCHxruL4DIzYfxh9/mJDDYi0knFik=",
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-CSvUcpq/bag2h6q/jhgdebJ5n7IE9rrAbielPCFI5jk=",
837
+ "hash": "sha256-0isEjWtcxpTZnvY3qV3eTiWX+iwsmslA96igYDcNwB4=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: AbrqsGjG */
1
+ /* Manifest version: myLeiE66 */
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