@mindexec/cli 0.2.205 → 0.2.206

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.205",
3
+ "version": "0.2.206",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -6068,6 +6068,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6068
6068
  if (sourceWidth <= 1 || sourceHeight <= 1) {
6069
6069
  return null;
6070
6070
  }
6071
+ const liveNodeCount = Number(this.nodeObjectsById?.size || 0);
6071
6072
 
6072
6073
  try {
6073
6074
  this.camera.updateProjectionMatrix?.();
@@ -6118,6 +6119,90 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6118
6119
  return null;
6119
6120
  }
6120
6121
 
6122
+ const drawProjectedNodeFrames = () => {
6123
+ if (!this.nodeObjectsById || liveNodeCount <= 0 || !this.container) {
6124
+ return 0;
6125
+ }
6126
+
6127
+ const containerWidth = Math.max(1, Number(this.container.clientWidth || sourceCanvas.clientWidth || sourceWidth || 1));
6128
+ const containerHeight = Math.max(1, Number(this.container.clientHeight || sourceCanvas.clientHeight || sourceHeight || 1));
6129
+ const canvasScaleX = sourceWidth / containerWidth;
6130
+ const canvasScaleY = sourceHeight / containerHeight;
6131
+ let drawn = 0;
6132
+
6133
+ const getStyle = (contentType) => {
6134
+ switch (String(contentType || '').trim().toLowerCase()) {
6135
+ case 'image': return { fill: 'rgba(219, 234, 254, 0.92)', stroke: 'rgba(37, 99, 235, 0.85)' };
6136
+ case 'video': return { fill: 'rgba(237, 233, 254, 0.92)', stroke: 'rgba(124, 58, 237, 0.82)' };
6137
+ case 'pdf': return { fill: 'rgba(254, 226, 226, 0.92)', stroke: 'rgba(220, 38, 38, 0.78)' };
6138
+ case 'memo': return { fill: 'rgba(254, 243, 199, 0.94)', stroke: 'rgba(217, 119, 6, 0.82)' };
6139
+ case 'agent':
6140
+ case 'ai':
6141
+ case 'ai-task': return { fill: 'rgba(220, 252, 231, 0.92)', stroke: 'rgba(22, 163, 74, 0.80)' };
6142
+ case 'remote-fleet':
6143
+ case 'remote-device':
6144
+ case 'multi-desktop-monitor': return { fill: 'rgba(224, 231, 255, 0.92)', stroke: 'rgba(79, 70, 229, 0.78)' };
6145
+ case 'template':
6146
+ case 'templatelauncher': return { fill: 'rgba(204, 251, 241, 0.92)', stroke: 'rgba(13, 148, 136, 0.78)' };
6147
+ case 'csv-table': return { fill: 'rgba(240, 253, 244, 0.92)', stroke: 'rgba(21, 128, 61, 0.78)' };
6148
+ default: return { fill: 'rgba(224, 242, 254, 0.92)', stroke: 'rgba(2, 132, 199, 0.80)' };
6149
+ }
6150
+ };
6151
+
6152
+ const drawRoundRect = (x, y, w, h, r) => {
6153
+ const radius = Math.max(1, Math.min(r, w / 2, h / 2));
6154
+ ctx.beginPath();
6155
+ ctx.moveTo(x + radius, y);
6156
+ ctx.lineTo(x + w - radius, y);
6157
+ ctx.quadraticCurveTo(x + w, y, x + w, y + radius);
6158
+ ctx.lineTo(x + w, y + h - radius);
6159
+ ctx.quadraticCurveTo(x + w, y + h, x + w - radius, y + h);
6160
+ ctx.lineTo(x + radius, y + h);
6161
+ ctx.quadraticCurveTo(x, y + h, x, y + h - radius);
6162
+ ctx.lineTo(x, y + radius);
6163
+ ctx.quadraticCurveTo(x, y, x + radius, y);
6164
+ ctx.closePath();
6165
+ };
6166
+
6167
+ this.nodeObjectsById.forEach((entry) => {
6168
+ const rect = projectNodeFrameDebugModelRect(this, entry);
6169
+ if (!rect) return;
6170
+
6171
+ const sourceLeft = rect.left * canvasScaleX;
6172
+ const sourceTop = rect.top * canvasScaleY;
6173
+ const sourceRight = rect.right * canvasScaleX;
6174
+ const sourceBottom = rect.bottom * canvasScaleY;
6175
+ const destLeft = ((sourceLeft - sx) / sw) * width;
6176
+ const destTop = ((sourceTop - sy) / sh) * height;
6177
+ const destRight = ((sourceRight - sx) / sw) * width;
6178
+ const destBottom = ((sourceBottom - sy) / sh) * height;
6179
+ const clippedLeft = Math.max(0, Math.min(width, destLeft));
6180
+ const clippedTop = Math.max(0, Math.min(height, destTop));
6181
+ const clippedRight = Math.max(0, Math.min(width, destRight));
6182
+ const clippedBottom = Math.max(0, Math.min(height, destBottom));
6183
+ const nodeWidth = clippedRight - clippedLeft;
6184
+ const nodeHeight = clippedBottom - clippedTop;
6185
+ if (nodeWidth < 3 || nodeHeight < 3) return;
6186
+
6187
+ const model = entry?.model || {};
6188
+ const style = getStyle(model.contentType ?? model.ContentType);
6189
+ ctx.fillStyle = style.fill;
6190
+ ctx.strokeStyle = style.stroke;
6191
+ ctx.lineWidth = Math.max(0.8, Math.min(2, Math.min(width, height) / 180));
6192
+ drawRoundRect(clippedLeft, clippedTop, nodeWidth, nodeHeight, Math.min(8, Math.max(2, Math.min(nodeWidth, nodeHeight) * 0.08)));
6193
+ ctx.fill();
6194
+ ctx.stroke();
6195
+ drawn += 1;
6196
+ });
6197
+
6198
+ return drawn;
6199
+ };
6200
+
6201
+ const projectedNodeFrameCount = drawProjectedNodeFrames();
6202
+ if (liveNodeCount > 0 && projectedNodeFrameCount <= 0) {
6203
+ return null;
6204
+ }
6205
+
6121
6206
  if (options?.minimumVariance !== false) {
6122
6207
  try {
6123
6208
  const sample = ctx.getImageData(0, 0, width, height).data;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "MindExecution.Web",
3
3
  "resources": {
4
- "hash": "sha256-SxNAKacIarEP0kvePCZP3JewobG9CNd+KXsEXE7ZXk4=",
4
+ "hash": "sha256-Ny3t+3+wMEcLBIrH8PviSLxWnIKH3h8bXWdrXi8ESDY=",
5
5
  "fingerprinting": {
6
6
  "Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
7
7
  "Markdig.d1j7v41cl1.dll": "Markdig.dll",
@@ -131,7 +131,7 @@
131
131
  "MindExecution.Plugins.Directory.k4hx7g84qs.dll": "MindExecution.Plugins.Directory.dll",
132
132
  "MindExecution.Plugins.PlanMaster.kibqg6rvqh.dll": "MindExecution.Plugins.PlanMaster.dll",
133
133
  "MindExecution.Plugins.YouTube.089r64n2hv.dll": "MindExecution.Plugins.YouTube.dll",
134
- "MindExecution.Shared.qigwoeeqrt.dll": "MindExecution.Shared.dll",
134
+ "MindExecution.Shared.p86iw1fhns.dll": "MindExecution.Shared.dll",
135
135
  "MindExecution.Web.aj117i28hy.dll": "MindExecution.Web.dll",
136
136
  "dotnet.js": "dotnet.js",
137
137
  "dotnet.native.qc8g39g30v.js": "dotnet.native.js",
@@ -283,7 +283,7 @@
283
283
  "MindExecution.Plugins.Business.asckvekct8.dll": "sha256-ujRTVA1cvwBWDAdHqxU8oyTnOyjgvsr0ynsQjjxJxcY=",
284
284
  "MindExecution.Plugins.Concept.u9kzsgf64o.dll": "sha256-Yp38m6zHe8EBxtm480N4LfcHRpzFZRhYpr1RsCgnlK8=",
285
285
  "MindExecution.Plugins.PlanMaster.kibqg6rvqh.dll": "sha256-NOtEHR8Y0rO8BguFvD1soa8jfB4YVQFydten0SzqBEg=",
286
- "MindExecution.Shared.qigwoeeqrt.dll": "sha256-ootX6+43VGUCNh3DpuVwrO0Q2xDwqqmt4WDmzrxXF3U=",
286
+ "MindExecution.Shared.p86iw1fhns.dll": "sha256-GeQGsY17FMYu6beNS1RDR7yJ/nNgfiix6rjORzhXnCY=",
287
287
  "MindExecution.Web.aj117i28hy.dll": "sha256-+jKjBygtNF6dsjwsyJ+O2NId2p7HeQk4rYksxd+SqPA="
288
288
  },
289
289
  "lazyAssembly": {
@@ -7,8 +7,8 @@
7
7
  <title>MindExec | Business Execution OS for solo builders</title>
8
8
  <meta name="description" content="MindExec is an AI business execution OS for solo builders who want to turn notes, research, assets, and repeatable execution Skills into revenue-producing work." />
9
9
  <base href="/" />
10
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260618-template-mdm-border-v621-x1" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260618-template-mdm-border-v621-x1" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260618-project-thumbnail-nodes-v622-x1" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260618-project-thumbnail-nodes-v622-x1" />
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 = '20260618-template-mdm-border-v621-x1';
582
+ const scriptVersion = '20260618-project-thumbnail-nodes-v622-x1';
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": "tmpHHqhh",
2
+ "version": "SaOJ/F0w",
3
3
  "assets": [
4
4
  {
5
5
  "hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
@@ -78,7 +78,7 @@
78
78
  "url": "_content/MindExecution.Shared/js/marked.min.js"
79
79
  },
80
80
  {
81
- "hash": "sha256-xTWG0IO6nYqtcvUgWluJHWfalJjI4MN86PHUMmtpECs=",
81
+ "hash": "sha256-5pU2z888/VshyV2A52dlTj5jip67W5Bwp/HlMmzblKg=",
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
83
83
  },
84
84
  {
@@ -442,8 +442,8 @@
442
442
  "url": "_framework/MindExecution.Plugins.YouTube.089r64n2hv.dll"
443
443
  },
444
444
  {
445
- "hash": "sha256-ootX6+43VGUCNh3DpuVwrO0Q2xDwqqmt4WDmzrxXF3U=",
446
- "url": "_framework/MindExecution.Shared.qigwoeeqrt.dll"
445
+ "hash": "sha256-GeQGsY17FMYu6beNS1RDR7yJ/nNgfiix6rjORzhXnCY=",
446
+ "url": "_framework/MindExecution.Shared.p86iw1fhns.dll"
447
447
  },
448
448
  {
449
449
  "hash": "sha256-+jKjBygtNF6dsjwsyJ+O2NId2p7HeQk4rYksxd+SqPA=",
@@ -770,7 +770,7 @@
770
770
  "url": "_framework/Websocket.Client.vapounvmnl.dll"
771
771
  },
772
772
  {
773
- "hash": "sha256-lrx8OUyomT9XODwOdfdV0usfAL2NBMWtygkYnkZMKKQ=",
773
+ "hash": "sha256-txW3qdrqdJhTHyMMLK0IDsdhphqslC5BjXEhWNo5jpM=",
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-8SSekv6Rhkb9Q1BEOF3bXHw9yWmR7DN5XdW5wWZZHlA=",
837
+ "hash": "sha256-Yu4ksyC2qYgyh+5LJ62eR6plaNLjBTF/pRVH4shitOE=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: tmpHHqhh */
1
+ /* Manifest version: SaOJ/F0w */
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