@mindexec/cli 0.2.436 → 0.2.438

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/codex-model-catalog.js +202 -0
  2. package/codex-runtime.js +5 -2
  3. package/package.json +6 -3
  4. package/scripts/codex-model-catalog-smoke.mjs +150 -0
  5. package/server.js +35 -69
  6. package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +32 -28
  7. package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +2 -2
  8. package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +153 -233
  9. package/wwwroot/_content/MindExecution.Shared/js/mind-map-logic-workers.js +26 -5
  10. package/wwwroot/_content/MindExecution.Shared/js/mind-map-normal-boundary-optimizer.js +624 -0
  11. package/wwwroot/_content/MindExecution.Shared/js/mind-map-render-plan.js +40 -23
  12. package/wwwroot/_content/MindExecution.Shared/js/mind-map-visibility-worker.js +10 -5
  13. package/wwwroot/_content/MindExecution.Shared/js/renderers/CSS3DRenderer.js +10 -1
  14. package/wwwroot/_framework/{MindExecution.Plugins.Concept.7uhld08zkc.dll → MindExecution.Plugins.Concept.cvmglrxsjb.dll} +0 -0
  15. package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.y1sj1ifw0z.dll → MindExecution.Plugins.PlanMaster.8hmc6ps1ux.dll} +0 -0
  16. package/wwwroot/_framework/{MindExecution.Plugins.YouTube.ij0uk05x1o.dll → MindExecution.Plugins.YouTube.xb9sou9ox0.dll} +0 -0
  17. package/wwwroot/_framework/{MindExecution.Shared.1h72etbxec.dll → MindExecution.Shared.pqab76cjb6.dll} +0 -0
  18. package/wwwroot/_framework/{MindExecution.Web.18xe2efznc.dll → MindExecution.Web.mc24u4bzol.dll} +0 -0
  19. package/wwwroot/_framework/blazor.boot.json +11 -11
  20. package/wwwroot/index.html +3 -2
  21. package/wwwroot/service-worker-assets.js +24 -20
  22. package/wwwroot/service-worker.js +1 -1
@@ -3148,6 +3148,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3148
3148
  this._workerVisibilitySeq = 0;
3149
3149
  this._lastVisibilityEnteredIds = [];
3150
3150
  this._lastVisibilityExitedIds = [];
3151
+ this._lastVisibilityDiffVersion = -1;
3152
+ this._lastVisibilityDiffComplete = false;
3151
3153
  this._workerHitTestRangeKey = '';
3152
3154
  this._workerHitTestBoardId = '';
3153
3155
  this._workerHitTestCandidateIds = [];
@@ -5265,15 +5267,19 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
5265
5267
  this._lastVisibilityCullingProfile = result.profile || null;
5266
5268
  this._lastVisibilityViewportWorldRect = result.viewportRect || null;
5267
5269
  this._lastVisibilityNodeCount = Number(result.lastVisibilityNodeCount || this.nodeObjectsById?.size || 0);
5268
- this._lastVisibilityEnteredIds = enteredIds.slice(0, 128);
5269
- this._lastVisibilityExitedIds = exitedIds.slice(0, 128);
5270
- this._workerVisibilityPriorityIds = Array.isArray(result.priorityIds)
5271
- ? result.priorityIds.map((nodeId) => String(nodeId || '').trim()).filter(Boolean)
5272
- : [];
5270
+ if (Array.isArray(result.priorityIds)) {
5271
+ this._workerVisibilityPriorityIds = result.priorityIds
5272
+ .map((nodeId) => String(nodeId || '').trim())
5273
+ .filter(Boolean);
5274
+ }
5273
5275
  this._workerVisibilitySeq = Number(result.seq || 0);
5274
5276
 
5275
5277
  if (visibilityChanged) {
5276
5278
  this._visibilityVersion = (this._visibilityVersion || 0) + 1;
5279
+ this._lastVisibilityEnteredIds = enteredIds;
5280
+ this._lastVisibilityExitedIds = exitedIds;
5281
+ this._lastVisibilityDiffVersion = this._visibilityVersion;
5282
+ this._lastVisibilityDiffComplete = true;
5277
5283
  this._applyVisibilityOverlayInvalidation(prevVisibleSize, nextVisible.size);
5278
5284
  }
5279
5285
 
@@ -5742,20 +5748,22 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
5742
5748
  });
5743
5749
  }
5744
5750
 
5745
- let visibilityChanged = prevVisible.size !== nextVisible.size;
5746
- if (!visibilityChanged) {
5747
- for (const nodeId of nextVisible) {
5748
- if (!prevVisible.has(nodeId)) {
5749
- visibilityChanged = true;
5750
- break;
5751
- }
5752
- }
5753
- }
5751
+ const enteredIds = [];
5752
+ const exitedIds = [];
5753
+ nextVisible.forEach((nodeId) => {
5754
+ if (!prevVisible.has(nodeId)) enteredIds.push(nodeId);
5755
+ });
5756
+ prevVisible.forEach((nodeId) => {
5757
+ if (!nextVisible.has(nodeId)) exitedIds.push(nodeId);
5758
+ });
5759
+ const visibilityChanged = enteredIds.length > 0 || exitedIds.length > 0;
5754
5760
 
5755
5761
  if (visibilityChanged) {
5756
5762
  this._visibilityVersion = (this._visibilityVersion || 0) + 1;
5757
- this._lastVisibilityEnteredIds = [];
5758
- this._lastVisibilityExitedIds = [];
5763
+ this._lastVisibilityEnteredIds = enteredIds;
5764
+ this._lastVisibilityExitedIds = exitedIds;
5765
+ this._lastVisibilityDiffVersion = this._visibilityVersion;
5766
+ this._lastVisibilityDiffComplete = true;
5759
5767
  this._applyVisibilityOverlayInvalidation(prevVisible.size, nextVisible.size);
5760
5768
  }
5761
5769
 
@@ -6050,10 +6058,6 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6050
6058
  (panEndedThisFrame && isPanSmoothingActive !== true);
6051
6059
  if (shouldFinalizeMotionThisFrame) {
6052
6060
  this._lastMotionEndAt = frameStart;
6053
- if (this._cursorDomDeferredForMotion === true) {
6054
- updateCursorDomElement(this);
6055
- this._cursorDomDeferredForMotion = false;
6056
- }
6057
6061
  if (zoomEndedThisFrame === true) {
6058
6062
  const shouldReconcileLocalSnapGridAfterZoom = !!(
6059
6063
  this._isLocalSnapGridThemeEnabled?.() === true &&
@@ -6839,14 +6843,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6839
6843
 
6840
6844
  // 5. Cursor DOM position
6841
6845
  // ----------------------------------------------------------------
6842
- if (isCameraNavigationOnlyInteractiveFrame === true ||
6843
- this.isPanning === true ||
6844
- this.isZooming === true ||
6845
- isCameraMoving === true) {
6846
- this._cursorDomDeferredForMotion = true;
6847
- } else {
6848
- updateCursorDomElement(this);
6849
- }
6846
+ // The creation cursor is a world-space anchor. Project it from
6847
+ // the canonical camera on every rendered motion frame so it
6848
+ // travels with the board while pan/zoom lerp is settling.
6849
+ updateCursorDomElement(this);
6850
6850
 
6851
6851
  // 6. Theme Animation
6852
6852
  // ----------------------------------------------------------------
@@ -7814,6 +7814,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
7814
7814
  this._workerVisibilitySeq = 0;
7815
7815
  this._lastVisibilityEnteredIds = [];
7816
7816
  this._lastVisibilityExitedIds = [];
7817
+ this._lastVisibilityDiffVersion = -1;
7818
+ this._lastVisibilityDiffComplete = false;
7817
7819
  this.logicWorkerBridge?.dispose?.();
7818
7820
  this.logicWorkerBridge = null;
7819
7821
 
@@ -9644,6 +9646,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
9644
9646
  moduleInstance._workerVisibilitySeq = 0;
9645
9647
  moduleInstance._lastVisibilityEnteredIds = [];
9646
9648
  moduleInstance._lastVisibilityExitedIds = [];
9649
+ moduleInstance._lastVisibilityDiffVersion = -1;
9650
+ moduleInstance._lastVisibilityDiffComplete = false;
9647
9651
  if (moduleInstance.lodRenderer && typeof moduleInstance.lodRenderer.resetState === 'function') {
9648
9652
  moduleInstance.lodRenderer.resetState();
9649
9653
  }
@@ -5231,7 +5231,7 @@
5231
5231
  function setTextOverlaySourceActive(nodeEntry, isActive) {
5232
5232
  if (isCss3dMediaNode(nodeEntry?.model)) {
5233
5233
  restoreCss3dMediaOverlayState(nodeEntry.model, nodeEntry.cssObject);
5234
- nodeEntry._textOverlayActive = false;
5234
+ nodeEntry._textOverlayActive = false; nodeEntry._css3dSourceSuspended = false;
5235
5235
  return;
5236
5236
  }
5237
5237
 
@@ -5248,7 +5248,7 @@
5248
5248
  restoreTextOverlaySourceTarget(target);
5249
5249
  }
5250
5250
  });
5251
- nodeEntry._textOverlayActive = !!isActive;
5251
+ nodeEntry._textOverlayActive = nodeEntry._css3dSourceSuspended = !!isActive;
5252
5252
  }
5253
5253
 
5254
5254
  function getTextOverlayPlacementInfo(module, element) {