@mindexec/cli 0.2.219 → 0.2.221

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.
Files changed (22) hide show
  1. package/package.json +1 -1
  2. package/scripts/remote-fleet-render-smoke.mjs +11 -0
  3. package/wwwroot/_content/MindExecution.Shared/js/background-themes.js +28 -113
  4. package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +1952 -152
  5. package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +375 -98
  6. package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +108 -49
  7. package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +85 -3
  8. package/wwwroot/_content/MindExecution.Shared/js/mind-map-nodes.js +83 -14
  9. package/wwwroot/_content/MindExecution.Shared/js/mind-map-text-overlay-v2.js +5 -0
  10. package/wwwroot/_content/MindExecution.Shared/js/renderers/CSS3DRenderer.js +2 -2
  11. package/wwwroot/_framework/{MindExecution.Core.c9wgwsw9z6.dll → MindExecution.Core.xsad4wu36e.dll} +0 -0
  12. package/wwwroot/_framework/{MindExecution.Plugins.Admin.29mytzdaun.dll → MindExecution.Plugins.Admin.m5d94977um.dll} +0 -0
  13. package/wwwroot/_framework/{MindExecution.Plugins.Business.g8txk1zzic.dll → MindExecution.Plugins.Business.ntqdn1hta3.dll} +0 -0
  14. package/wwwroot/_framework/{MindExecution.Plugins.Concept.u9kzsgf64o.dll → MindExecution.Plugins.Concept.mqiyx4db4r.dll} +0 -0
  15. package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.kibqg6rvqh.dll → MindExecution.Plugins.PlanMaster.fnortumnuu.dll} +0 -0
  16. package/wwwroot/_framework/{MindExecution.Plugins.YouTube.089r64n2hv.dll → MindExecution.Plugins.YouTube.86osu6wpgh.dll} +0 -0
  17. package/wwwroot/_framework/{MindExecution.Shared.tbutfszqeu.dll → MindExecution.Shared.wg2otcw4bv.dll} +0 -0
  18. package/wwwroot/_framework/{MindExecution.Web.7axuoygrwi.dll → MindExecution.Web.gfio3kfxrd.dll} +0 -0
  19. package/wwwroot/_framework/blazor.boot.json +17 -17
  20. package/wwwroot/index.html +3 -3
  21. package/wwwroot/service-worker-assets.js +27 -27
  22. package/wwwroot/service-worker.js +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindexec/cli",
3
- "version": "0.2.219",
3
+ "version": "0.2.221",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -175,13 +175,24 @@ class MiniElement {
175
175
 
176
176
  dispatchEvent(event) {
177
177
  const payload = typeof event === 'string' ? { type: event } : { ...(event || {}) };
178
+ let immediateStopped = false;
179
+ const originalStopImmediatePropagation = typeof payload.stopImmediatePropagation === 'function'
180
+ ? payload.stopImmediatePropagation
181
+ : null;
178
182
  payload.type = payload.type || 'event';
179
183
  payload.target = payload.target || this;
180
184
  payload.currentTarget = this;
181
185
  payload.preventDefault = payload.preventDefault || (() => {});
182
186
  payload.stopPropagation = payload.stopPropagation || (() => {});
187
+ payload.stopImmediatePropagation = () => {
188
+ immediateStopped = true;
189
+ originalStopImmediatePropagation?.();
190
+ };
183
191
  for (const listener of this._listeners.get(payload.type) || []) {
184
192
  listener(payload);
193
+ if (immediateStopped) {
194
+ break;
195
+ }
185
196
  }
186
197
  return true;
187
198
  }
@@ -145,7 +145,7 @@
145
145
  return false;
146
146
  }
147
147
 
148
- themeObject.animate(camera);
148
+ themeObject.animate(camera, options);
149
149
 
150
150
  const mode = getThemeAnimationMode(themeName, themeObject);
151
151
  if (mode === THEME_ANIMATION_MODE.Camera || mode === THEME_ANIMATION_MODE.None) {
@@ -315,118 +315,27 @@
315
315
  dispose: (themeObject) => { disposeThemeObject(themeObject); }
316
316
  },
317
317
 
318
- // Theme 2: SpatialGrid2D (dots and '+' markers on the XY plane only)
319
- 'SpatialGrid2D': {
320
- create: (scene) => {
318
+ // Theme 2: SpatialGrid2D (lightweight adaptive grid on the XY plane)
319
+ 'SpatialGrid2D': {
320
+ create: (scene) => {
321
321
  scene.background = new THREE.Color(THEME_SURFACE_BG);
322
- const gridRange = 10000; // Larger XY plane range
323
- const gridStep = 10; // Larger dot spacing
324
- const markerStep = 100; // Larger '+' marker spacing
325
- const markerSize = 10; // '+' marker size
326
- const dotSize = 2; // Dot size
327
-
328
- const dotVertices = [];
329
- const markerVertices = [];
330
-
331
- // Iterate X/Y only; keep Z fixed at 0
332
- for (let x = -gridRange; x <= gridRange; x += gridStep) {
333
- for (let y = -gridRange; y <= gridRange; y += gridStep) {
334
- const z = 0; // Keep Z fixed at 0
335
-
336
- // Check whether XY coordinates are multiples of markerStep
337
- if (x % markerStep === 0 && y % markerStep === 0) {
338
- markerVertices.push(x, y, z);
339
- } else {
340
- dotVertices.push(x, y, z);
341
- }
342
- }
343
- }
344
-
345
- const themeGroup = new THREE.Group();
346
-
347
- // 1. Dots
348
- const dotGeom = new THREE.BufferGeometry();
349
- dotGeom.setAttribute('position', new THREE.Float32BufferAttribute(dotVertices, 3));
350
- const dotMaterial = new THREE.PointsMaterial({
351
- color: 0xaaaaaa, // Dot color (slightly brighter)
352
- size: dotSize,
353
- sizeAttenuation: true,
354
- transparent: true, // Needed for opacity control
355
- opacity: 1.0,
356
- depthWrite: false // ▼ [Fix] Prevent Z-fighting with nodes
357
- });
358
- const dotMesh = new THREE.Points(dotGeom, dotMaterial);
359
- dotMesh.renderOrder = -1; // ▼ [Fix] Render before nodes to avoid Z-fighting
360
- themeGroup.add(dotMesh);
361
-
362
- // 2. '+' Markers
363
- const markerGeom = new THREE.BufferGeometry();
364
- markerGeom.setAttribute('position', new THREE.Float32BufferAttribute(markerVertices, 3));
365
- const markerMaterial = new THREE.PointsMaterial({
366
- map: createPlusTexture(),
367
- size: markerSize,
368
- sizeAttenuation: true,
369
- transparent: true,
370
- alphaTest: 0.1,
371
- color: 0x888888, // Marker color (slightly darker than dots)
372
- opacity: 1.0,
373
- depthWrite: false // ▼ [Fix] Prevent Z-fighting with nodes
374
- });
375
- const markerMesh = new THREE.Points(markerGeom, markerMaterial);
376
- markerMesh.renderOrder = -1; // ▼ [Fix] Render before nodes to avoid Z-fighting
377
- themeGroup.add(markerMesh);
378
-
379
- const tmp = new THREE.Vector3();
380
- const snapSize = markerStep;
381
-
382
- // ▼▼▼ [New] Distance-based opacity control (see XYGrid) ▼▼▼
383
- themeGroup.animate = function (camera) {
384
- if (!camera) return;
385
-
386
- // Position snapping
387
- tmp.copy(camera.position);
388
- tmp.z = 0; // Same plane as nodes (no parallax)
389
- tmp.x = Math.round(tmp.x / snapSize) * snapSize;
390
- tmp.y = Math.round(tmp.y / snapSize) * snapSize;
391
- themeGroup.position.copy(tmp);
392
-
393
- // Distance-based opacity
394
- const z = camera.position.z;
395
- let opacity = 1.0;
396
-
397
- if (z < 1600) {
398
- // [~1600] Near: 100%
399
- opacity = 1.0;
400
- }
401
- else if (z >= 1600 && z < 2400) {
402
- // [1600~2400] Transition: start fading
403
- const t = (z - 1600) / 800; // 0.0 ~ 1.0
404
- opacity = 1.0 - (t * 0.5); // 1.0 -> 0.5
405
- }
406
- else if (z >= 2400 && z < 4000) {
407
- // [2400~4000] Mid-range
408
- opacity = 0.5;
409
- }
410
- else if (z >= 4000 && z < 6000) {
411
- // [4000~6000] Far: fade out
412
- const t = (z - 4000) / 2000; // 0.0 ~ 1.0
413
- opacity = 0.5 - (t * 0.5); // 0.5 -> 0
414
- }
415
- else {
416
- // [6000~] Very far: hidden
417
- opacity = 0;
418
- }
419
-
420
- // Apply opacity
421
- dotMaterial.opacity = opacity;
422
- markerMaterial.opacity = opacity;
423
- };
424
- // ▲▲▲ [New] ▲▲▲
425
-
426
- return setThemeAnimationMode(themeGroup, THEME_ANIMATION_MODE.Camera);
322
+ const grid = createAdaptiveXYGridOverlay(new THREE.Color(THEME_GRID_COLOR_SOFT), {
323
+ fineDistance: 42000,
324
+ coarseDistance: 120000,
325
+ farDistance: 320000,
326
+ fineSmallOpacity: 0.36,
327
+ fineLargeOpacity: 0.24,
328
+ coarseSmallOpacity: 0.3,
329
+ coarseLargeOpacity: 0.2,
330
+ farSmallOpacity: 0.24,
331
+ farLargeOpacity: 0.14
332
+ });
333
+ grid.userData.themeAlias = 'SpatialGrid2D';
334
+ grid.userData.lightweightAdaptiveGrid = true;
335
+ return grid;
427
336
  },
428
- dispose: (themeObject) => { disposeThemeObject(themeObject); }
429
- },
337
+ dispose: (themeObject) => { disposeThemeObject(themeObject); }
338
+ },
430
339
 
431
340
  // Theme 3: GridPlane (basic 2D grid - uses InfiniteGridHelper)
432
341
  'GridPlane': {
@@ -1082,13 +991,19 @@
1082
991
  themeGroup.add(adaptiveGridOverlay);
1083
992
 
1084
993
  // Animation: galaxy texture simulation and camera tracking for grid
1085
- themeGroup.animate = (camera) => {
994
+ themeGroup.animate = (camera, options = {}) => {
1086
995
  if (!camera) return;
1087
996
 
997
+ const isInteractiveMotionFrame = options.isInteractiveFrame === true ||
998
+ options.isCameraMoving === true ||
999
+ options.isPanning === true ||
1000
+ options.isZooming === true;
1001
+ const simulationStepCount = isInteractiveMotionFrame ? 1 : simulationStepsPerTick;
1002
+
1088
1003
  if (simulationReady) {
1089
1004
  const previousTarget = renderer.getRenderTarget ? renderer.getRenderTarget() : null;
1090
1005
  try {
1091
- for (let i = 0; i < simulationStepsPerTick; i++) {
1006
+ for (let i = 0; i < simulationStepCount; i++) {
1092
1007
  velocityMaterial.uniforms.u_positionTexture.value = currentPositionTarget.texture;
1093
1008
  velocityMaterial.uniforms.u_velocityTexture.value = currentVelocityTarget.texture;
1094
1009
  renderComputePass(velocityMaterial, nextVelocityTarget);