@mindexec/cli 0.2.471 → 0.2.473

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 (21) hide show
  1. package/package.json +1 -1
  2. package/remote-fast/osx-arm64/mindexec-remote-fast.dll +0 -0
  3. package/remote-fast/osx-x64/mindexec-remote-fast.dll +0 -0
  4. package/remote-fast/win-x64/mindexec-remote-fast.dll +0 -0
  5. package/wwwroot/_content/MindExecution.Shared/js/mind-map-automation-edge-motion.js +170 -0
  6. package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +27 -95
  7. package/wwwroot/_framework/{MindExecution.Core.94m6ejtca1.dll → MindExecution.Core.p242wvzbdm.dll} +0 -0
  8. package/wwwroot/_framework/{MindExecution.Kernel.61ttjshkyz.dll → MindExecution.Kernel.fygh6o7ah1.dll} +0 -0
  9. package/wwwroot/_framework/{MindExecution.Plugins.Admin.4b5expbfln.dll → MindExecution.Plugins.Admin.slf5qsn9pe.dll} +0 -0
  10. package/wwwroot/_framework/{MindExecution.Plugins.Business.ohwctqyt61.dll → MindExecution.Plugins.Business.hmmh2iarjz.dll} +0 -0
  11. package/wwwroot/_framework/{MindExecution.Plugins.Concept.f8q8szf0d6.dll → MindExecution.Plugins.Concept.mxak1yilgh.dll} +0 -0
  12. package/wwwroot/_framework/{MindExecution.Plugins.Directory.zh2sduii1b.dll → MindExecution.Plugins.Directory.h0k33bgkfw.dll} +0 -0
  13. package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.1cwldgvpvn.dll → MindExecution.Plugins.PlanMaster.ijbnd3xmt7.dll} +0 -0
  14. package/wwwroot/_framework/{MindExecution.Plugins.YouTube.5s3kg6vrqh.dll → MindExecution.Plugins.YouTube.aa5i2z7lvo.dll} +0 -0
  15. package/wwwroot/_framework/{MindExecution.Shared.hnzia43ril.dll → MindExecution.Shared.jk6h3848ht.dll} +0 -0
  16. package/wwwroot/_framework/{MindExecution.Web.cnxtclcio0.dll → MindExecution.Web.s2oqn7b07d.dll} +0 -0
  17. package/wwwroot/_framework/blazor.boot.json +21 -21
  18. package/wwwroot/appsettings.json +81 -81
  19. package/wwwroot/index.html +2 -1
  20. package/wwwroot/service-worker-assets.js +900 -896
  21. 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.471",
3
+ "version": "0.2.473",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -0,0 +1,170 @@
1
+ (function (global) {
2
+ 'use strict';
3
+
4
+ function setSvgAttributes(element, attributes) {
5
+ if (!element) {
6
+ return;
7
+ }
8
+
9
+ Object.entries(attributes).forEach(([name, value]) => {
10
+ const text = String(value);
11
+ if (element.getAttribute(name) !== text) {
12
+ element.setAttribute(name, text);
13
+ }
14
+ });
15
+ }
16
+
17
+ function buildEdgePathData(source, target) {
18
+ const deltaX = target.x - source.x;
19
+ const absDeltaX = Math.abs(deltaX);
20
+ const direction = deltaX < 0 ? -1 : 1;
21
+ const handleDistance = Math.min(180, Math.max(12, absDeltaX * 0.38), Math.max(0, absDeltaX * 0.45));
22
+ const signedHandleDistance = direction * handleDistance;
23
+ return `M ${source.x.toFixed(1)} ${source.y.toFixed(1)} C ${(source.x + signedHandleDistance).toFixed(1)} ${source.y.toFixed(1)}, ${(target.x - signedHandleDistance).toFixed(1)} ${target.y.toFixed(1)}, ${target.x.toFixed(1)} ${target.y.toFixed(1)}`;
24
+ }
25
+
26
+ function getCachedViewportMetrics(module) {
27
+ const width = Math.max(0, Number(module?._lastViewportWidth || module?._lastContainerWidth || 0));
28
+ const height = Math.max(0, Number(module?._lastViewportHeight || module?._lastContainerHeight || 0));
29
+ if (width > 0 && height > 0) {
30
+ return { width, height };
31
+ }
32
+
33
+ return {
34
+ width: Math.max(1, Number(module?.container?.clientWidth || 0)),
35
+ height: Math.max(1, Number(module?.container?.clientHeight || 0))
36
+ };
37
+ }
38
+
39
+ function recordCameraState(module, width, height) {
40
+ if (!module?.camera) {
41
+ return false;
42
+ }
43
+
44
+ module._lastBusinessAutomationEdgeCameraState = {
45
+ x: Number(module.camera.position?.x || 0),
46
+ y: Number(module.camera.position?.y || 0),
47
+ z: Math.max(1, Number(module.camera.position?.z || 1)),
48
+ width: Math.max(1, Number(width || 1)),
49
+ height: Math.max(1, Number(height || 1)),
50
+ fov: Number(module.camera.fov || 45)
51
+ };
52
+ return true;
53
+ }
54
+
55
+ function clearCameraMotion(module) {
56
+ const layers = [
57
+ module?._businessAutomationEdgeVisualLayer || null,
58
+ module?._businessAutomationEdgeLayer || null
59
+ ].filter(Boolean);
60
+ if (layers.length === 0 || module?._businessAutomationEdgeCameraTransformActive !== true) {
61
+ return false;
62
+ }
63
+
64
+ layers.forEach(layer => {
65
+ if (!layer?.style) return;
66
+ layer.style.transform = '';
67
+ layer.style.transformOrigin = '';
68
+ layer.style.willChange = '';
69
+ });
70
+ module?._businessAutomationEdgeRenderState?.occlusionMaskState?.blackGroup?.removeAttribute?.('transform');
71
+ module._businessAutomationEdgeCameraTransformActive = false;
72
+ module._lastBusinessAutomationEdgeTransformKey = '';
73
+ module._businessAutomationEdgeMotionSyncMode = 'settled';
74
+ module._businessAutomationEdgeMotionSyncCount = 0;
75
+ return true;
76
+ }
77
+
78
+ function transformPoint(point, scale, offsetX, offsetY) {
79
+ const x = Number(point?.x);
80
+ const y = Number(point?.y);
81
+ if (!Number.isFinite(x) || !Number.isFinite(y)) {
82
+ return null;
83
+ }
84
+
85
+ return { x: x * scale + offsetX, y: y * scale + offsetY };
86
+ }
87
+
88
+ function updateEdgeItem(item, scale, offsetX, offsetY) {
89
+ if (!item || item.motionVisible !== true) {
90
+ return false;
91
+ }
92
+
93
+ const source = transformPoint(item.motionSource, scale, offsetX, offsetY);
94
+ const target = transformPoint(item.motionTarget, scale, offsetX, offsetY);
95
+ if (!source || !target) {
96
+ return false;
97
+ }
98
+
99
+ const pathData = buildEdgePathData(source, target);
100
+ setSvgAttributes(item.hitPath, { d: pathData });
101
+ setSvgAttributes(item.path, { d: pathData });
102
+ setSvgAttributes(item.sourceDot, { cx: source.x.toFixed(1), cy: source.y.toFixed(1) });
103
+ setSvgAttributes(item.targetDot, { cx: target.x.toFixed(1), cy: target.y.toFixed(1) });
104
+ return true;
105
+ }
106
+
107
+ function syncForCameraMotion(module) {
108
+ const visualLayer = module?._businessAutomationEdgeVisualLayer || null;
109
+ const hitLayer = module?._businessAutomationEdgeLayer || null;
110
+ const camera = module?.camera || null;
111
+ const last = module?._lastBusinessAutomationEdgeCameraState || null;
112
+ if (!camera || !last || (!visualLayer?.isConnected && !hitLayer?.isConnected)) {
113
+ return false;
114
+ }
115
+
116
+ const viewport = getCachedViewportMetrics(module);
117
+ const width = Math.max(1, Number(viewport.width || last.width || 1));
118
+ const height = Math.max(1, Number(viewport.height || last.height || 1));
119
+ const currentZ = Math.max(1, Number(camera.position?.z || 1));
120
+ const lastZ = Math.max(1, Number(last.z || currentZ));
121
+ const vfov = (Number(camera.fov || last.fov || 45) * Math.PI) / 180;
122
+ const pxPerWorld = height / Math.max(1, 2 * Math.tan(vfov / 2) * currentZ);
123
+ const scale = Math.max(0.05, Math.min(20, lastZ / currentZ));
124
+ const translateX = (Number(last.x || 0) - Number(camera.position?.x || 0)) * pxPerWorld;
125
+ const translateY = (Number(camera.position?.y || 0) - Number(last.y || 0)) * pxPerWorld;
126
+ const offsetX = (1 - scale) * width * 0.5 + translateX;
127
+ const offsetY = (1 - scale) * height * 0.5 + translateY;
128
+ const transformKey = [
129
+ Math.round(width),
130
+ Math.round(height),
131
+ Math.round(translateX * 100),
132
+ Math.round(translateY * 100),
133
+ Math.round(scale * 10000)
134
+ ].join('|');
135
+
136
+ if (transformKey !== module._lastBusinessAutomationEdgeTransformKey) {
137
+ let updatedEdgeCount = 0;
138
+ const renderState = module?._businessAutomationEdgeRenderState || null;
139
+ renderState?.edgeItems?.forEach?.(item => {
140
+ if (updateEdgeItem(item, scale, offsetX, offsetY)) {
141
+ updatedEdgeCount += 1;
142
+ }
143
+ });
144
+
145
+ [visualLayer, hitLayer].forEach(layer => {
146
+ if (!layer?.style) return;
147
+ layer.style.transform = '';
148
+ layer.style.transformOrigin = '';
149
+ layer.style.willChange = '';
150
+ });
151
+
152
+ renderState?.occlusionMaskState?.blackGroup?.setAttribute?.(
153
+ 'transform',
154
+ `matrix(${scale.toFixed(7)} 0 0 ${scale.toFixed(7)} ${offsetX.toFixed(3)} ${offsetY.toFixed(3)})`
155
+ );
156
+ module._businessAutomationEdgeMotionSyncMode = 'keyed-geometry';
157
+ module._businessAutomationEdgeMotionSyncCount = updatedEdgeCount;
158
+ module._lastBusinessAutomationEdgeTransformKey = transformKey;
159
+ }
160
+
161
+ module._businessAutomationEdgeCameraTransformActive = true;
162
+ return true;
163
+ }
164
+
165
+ global.MindMapAutomationEdgeMotion = Object.freeze({
166
+ recordCameraState,
167
+ clearCameraMotion,
168
+ syncForCameraMotion
169
+ });
170
+ })(typeof window !== 'undefined' ? window : globalThis);
@@ -10408,106 +10408,16 @@
10408
10408
  }
10409
10409
  }
10410
10410
 
10411
- function getBusinessAutomationCachedViewportMetrics(module) {
10412
- const width = Math.max(0, Number(module?._lastViewportWidth || 0));
10413
- const height = Math.max(0, Number(module?._lastViewportHeight || 0));
10414
- if (width > 0 && height > 0) {
10415
- return { width, height };
10416
- }
10417
-
10418
- const containerWidth = Math.max(0, Number(module?._lastContainerWidth || 0));
10419
- const containerHeight = Math.max(0, Number(module?._lastContainerHeight || 0));
10420
- if (containerWidth > 0 && containerHeight > 0) {
10421
- return { width: containerWidth, height: containerHeight };
10422
- }
10423
-
10424
- return {
10425
- width: Math.max(1, Number(module?.container?.clientWidth || 0)),
10426
- height: Math.max(1, Number(module?.container?.clientHeight || 0))
10427
- };
10428
- }
10429
-
10430
10411
  function recordBusinessAutomationEdgeCameraState(module, width, height) {
10431
- if (!module?.camera) {
10432
- return;
10433
- }
10434
-
10435
- module._lastBusinessAutomationEdgeCameraState = {
10436
- x: Number(module.camera.position?.x || 0),
10437
- y: Number(module.camera.position?.y || 0),
10438
- z: Math.max(1, Number(module.camera.position?.z || 1)),
10439
- width: Math.max(1, Number(width || 1)),
10440
- height: Math.max(1, Number(height || 1)),
10441
- fov: Number(module.camera.fov || 45)
10442
- };
10412
+ return window.MindMapAutomationEdgeMotion?.recordCameraState?.(module, width, height) === true;
10443
10413
  }
10444
10414
 
10445
10415
  function clearBusinessAutomationEdgeCameraTransform(module) {
10446
- const layers = [
10447
- module?._businessAutomationEdgeVisualLayer || null,
10448
- module?._businessAutomationEdgeLayer || null
10449
- ].filter(Boolean);
10450
- if (layers.length === 0 || module?._businessAutomationEdgeCameraTransformActive !== true) {
10451
- return false;
10452
- }
10453
-
10454
- for (const layer of layers) {
10455
- if (!layer?.style) continue;
10456
- layer.style.transform = '';
10457
- layer.style.transformOrigin = '';
10458
- layer.style.willChange = '';
10459
- }
10460
- module._businessAutomationEdgeCameraTransformActive = false;
10461
- module._lastBusinessAutomationEdgeTransformKey = '';
10462
- return true;
10416
+ return window.MindMapAutomationEdgeMotion?.clearCameraMotion?.(module) === true;
10463
10417
  }
10464
10418
 
10465
10419
  function syncBusinessAutomationEdgesForCameraMotion(module = _module) {
10466
- const visualLayer = module?._businessAutomationEdgeVisualLayer || null;
10467
- const hitLayer = module?._businessAutomationEdgeLayer || null;
10468
- const camera = module?.camera || null;
10469
- const last = module?._lastBusinessAutomationEdgeCameraState || null;
10470
- if (!camera || !last || (!visualLayer?.isConnected && !hitLayer?.isConnected)) {
10471
- return false;
10472
- }
10473
-
10474
- const viewportMetrics = getBusinessAutomationCachedViewportMetrics(module);
10475
- const width = Math.max(1, Number(viewportMetrics.width || last.width || 1));
10476
- const height = Math.max(1, Number(viewportMetrics.height || last.height || 1));
10477
- const currentZ = Math.max(1, Number(camera.position?.z || 1));
10478
- const lastZ = Math.max(1, Number(last.z || currentZ));
10479
- const vfov = (Number(camera.fov || last.fov || 45) * Math.PI) / 180;
10480
- const viewHeight = 2 * Math.tan(vfov / 2) * currentZ;
10481
- const pxPerWorld = height / Math.max(1, viewHeight);
10482
- const scale = Math.max(0.05, Math.min(20, lastZ / currentZ));
10483
- const currentX = Number(camera.position?.x || 0);
10484
- const currentY = Number(camera.position?.y || 0);
10485
- const translateX = (Number(last.x || 0) - currentX) * pxPerWorld;
10486
- const translateY = (currentY - Number(last.y || 0)) * pxPerWorld;
10487
- const transformKey = [
10488
- Math.round(width),
10489
- Math.round(height),
10490
- Math.round(translateX * 100),
10491
- Math.round(translateY * 100),
10492
- Math.round(scale * 10000)
10493
- ].join('|');
10494
-
10495
- if (transformKey !== module._lastBusinessAutomationEdgeTransformKey) {
10496
- const transform = `translate3d(${translateX.toFixed(3)}px, ${translateY.toFixed(3)}px, 0) scale(${scale.toFixed(5)})`;
10497
- for (const layer of [visualLayer, hitLayer]) {
10498
- if (!layer?.style) continue;
10499
- if (module._businessAutomationEdgeCameraTransformActive !== true ||
10500
- layer.style.willChange !== 'transform') {
10501
- layer.style.transformOrigin = '50% 50%';
10502
- layer.style.willChange = 'transform';
10503
- }
10504
- layer.style.transform = transform;
10505
- }
10506
- module._lastBusinessAutomationEdgeTransformKey = transformKey;
10507
- }
10508
-
10509
- module._businessAutomationEdgeCameraTransformActive = true;
10510
- return true;
10420
+ return window.MindMapAutomationEdgeMotion?.syncForCameraMotion?.(module) === true;
10511
10421
  }
10512
10422
 
10513
10423
  function getBusinessAutomationPinAnchorElement(pinElement) {
@@ -10863,6 +10773,7 @@
10863
10773
  visualGroup.removeAttribute('mask');
10864
10774
  if (renderState?.occlusionMaskState) {
10865
10775
  renderState.occlusionMaskState.activeCount = 0;
10776
+ renderState.occlusionMaskState.blackGroup?.removeAttribute?.('transform');
10866
10777
  renderState.occlusionMaskState.blackRects?.forEach?.(element => {
10867
10778
  if (element?.parentNode) {
10868
10779
  element.remove();
@@ -10880,17 +10791,32 @@
10880
10791
  defs: createBusinessAutomationSvgElement('defs'),
10881
10792
  mask: createBusinessAutomationSvgElement('mask'),
10882
10793
  baseRect: createBusinessAutomationSvgElement('rect'),
10794
+ blackGroup: createBusinessAutomationSvgElement('g'),
10883
10795
  blackRects: [],
10884
10796
  activeCount: 0
10885
10797
  };
10886
10798
  maskState.mask.style.maskType = 'luminance';
10887
10799
  maskState.mask.appendChild(maskState.baseRect);
10800
+ maskState.mask.appendChild(maskState.blackGroup);
10888
10801
  maskState.defs.appendChild(maskState.mask);
10889
10802
  if (renderState) {
10890
10803
  renderState.occlusionMaskState = maskState;
10891
10804
  }
10892
10805
  }
10893
10806
 
10807
+ if (!maskState.blackGroup) {
10808
+ maskState.blackGroup = createBusinessAutomationSvgElement('g');
10809
+ maskState.blackRects.forEach(element => {
10810
+ if (element) {
10811
+ maskState.blackGroup.appendChild(element);
10812
+ }
10813
+ });
10814
+ }
10815
+ if (maskState.blackGroup.parentNode !== maskState.mask) {
10816
+ maskState.mask.appendChild(maskState.blackGroup);
10817
+ }
10818
+ maskState.blackGroup.removeAttribute('transform');
10819
+
10894
10820
  if (maskState.defs.parentNode !== visualLayer) {
10895
10821
  visualLayer.insertBefore(maskState.defs, visualGroup);
10896
10822
  } else if (maskState.defs.nextSibling !== visualGroup && visualGroup.parentNode === visualLayer) {
@@ -10928,8 +10854,8 @@
10928
10854
  ry: '6',
10929
10855
  fill: '#000000'
10930
10856
  });
10931
- if (element.parentNode !== maskState.mask) {
10932
- maskState.mask.appendChild(element);
10857
+ if (element.parentNode !== maskState.blackGroup) {
10858
+ maskState.blackGroup.appendChild(element);
10933
10859
  }
10934
10860
  });
10935
10861
  for (let i = rects.length; i < maskState.blackRects.length; i++) {
@@ -11296,6 +11222,9 @@
11296
11222
  'stroke-width': '1.4',
11297
11223
  opacity: isSelected ? '0.96' : (isRelationHighlighted ? '0.84' : (isContextEdge ? '0.82' : '0.96'))
11298
11224
  });
11225
+ item.motionSource = { x: source.x, y: source.y };
11226
+ item.motionTarget = { x: target.x, y: target.y };
11227
+ item.motionVisible = true;
11299
11228
  setBusinessAutomationSvgElementsVisible([item.hitPath, item.path, item.sourceDot, item.targetDot], true);
11300
11229
  }
11301
11230
 
@@ -11376,6 +11305,7 @@
11376
11305
  if (!source || !target) {
11377
11306
  const existing = renderState.edgeItems.get(edgeId);
11378
11307
  if (existing) {
11308
+ existing.motionVisible = false;
11379
11309
  setBusinessAutomationSvgElementsVisible([existing.hitPath, existing.path, existing.sourceDot, existing.targetDot], false);
11380
11310
  }
11381
11311
  continue;
@@ -11384,6 +11314,7 @@
11384
11314
  if (!doesBusinessAutomationSegmentIntersectViewport(source, target, width, height)) {
11385
11315
  const existing = renderState.edgeItems.get(edgeId);
11386
11316
  if (existing) {
11317
+ existing.motionVisible = false;
11387
11318
  setBusinessAutomationSvgElementsVisible([existing.hitPath, existing.path, existing.sourceDot, existing.targetDot], false);
11388
11319
  }
11389
11320
  continue;
@@ -11420,6 +11351,7 @@
11420
11351
  return;
11421
11352
  }
11422
11353
  if (!liveEdgeIds.has(edgeId)) {
11354
+ item.motionVisible = false;
11423
11355
  setBusinessAutomationSvgElementsVisible([item.hitPath, item.path, item.sourceDot, item.targetDot], false);
11424
11356
  }
11425
11357
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "MindExecution.Web",
3
3
  "resources": {
4
- "hash": "sha256-9FCH8qt3Ug3aaz4AO+TvQDN32omKWc3N92RLkY2hXNg=",
4
+ "hash": "sha256-D9EahcFFgxk5/eXPM74VJn4OhgGs3BJoHsibOzLR/lk=",
5
5
  "fingerprinting": {
6
6
  "Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
7
7
  "Markdig.d1j7v41cl1.dll": "Markdig.dll",
@@ -122,16 +122,16 @@
122
122
  "System.brmz7yk5qh.dll": "System.dll",
123
123
  "netstandard.b50t77veor.dll": "netstandard.dll",
124
124
  "System.Private.CoreLib.wflwsce1yq.dll": "System.Private.CoreLib.dll",
125
- "MindExecution.Core.94m6ejtca1.dll": "MindExecution.Core.dll",
126
- "MindExecution.Kernel.61ttjshkyz.dll": "MindExecution.Kernel.dll",
127
- "MindExecution.Plugins.Admin.4b5expbfln.dll": "MindExecution.Plugins.Admin.dll",
128
- "MindExecution.Plugins.Business.ohwctqyt61.dll": "MindExecution.Plugins.Business.dll",
129
- "MindExecution.Plugins.Concept.f8q8szf0d6.dll": "MindExecution.Plugins.Concept.dll",
130
- "MindExecution.Plugins.Directory.zh2sduii1b.dll": "MindExecution.Plugins.Directory.dll",
131
- "MindExecution.Plugins.PlanMaster.1cwldgvpvn.dll": "MindExecution.Plugins.PlanMaster.dll",
132
- "MindExecution.Plugins.YouTube.5s3kg6vrqh.dll": "MindExecution.Plugins.YouTube.dll",
133
- "MindExecution.Shared.hnzia43ril.dll": "MindExecution.Shared.dll",
134
- "MindExecution.Web.cnxtclcio0.dll": "MindExecution.Web.dll",
125
+ "MindExecution.Core.p242wvzbdm.dll": "MindExecution.Core.dll",
126
+ "MindExecution.Kernel.fygh6o7ah1.dll": "MindExecution.Kernel.dll",
127
+ "MindExecution.Plugins.Admin.slf5qsn9pe.dll": "MindExecution.Plugins.Admin.dll",
128
+ "MindExecution.Plugins.Business.hmmh2iarjz.dll": "MindExecution.Plugins.Business.dll",
129
+ "MindExecution.Plugins.Concept.mxak1yilgh.dll": "MindExecution.Plugins.Concept.dll",
130
+ "MindExecution.Plugins.Directory.h0k33bgkfw.dll": "MindExecution.Plugins.Directory.dll",
131
+ "MindExecution.Plugins.PlanMaster.ijbnd3xmt7.dll": "MindExecution.Plugins.PlanMaster.dll",
132
+ "MindExecution.Plugins.YouTube.aa5i2z7lvo.dll": "MindExecution.Plugins.YouTube.dll",
133
+ "MindExecution.Shared.jk6h3848ht.dll": "MindExecution.Shared.dll",
134
+ "MindExecution.Web.s2oqn7b07d.dll": "MindExecution.Web.dll",
135
135
  "dotnet.native.566r55w3xu.js": "dotnet.native.js",
136
136
  "dotnet.native.x6q5aixc38.wasm": "dotnet.native.wasm",
137
137
  "dotnet.js": "dotnet.js",
@@ -276,18 +276,18 @@
276
276
  "System.Xml.XDocument.sn51jas17n.dll": "sha256-GNI2kFgFmPTwzuzwUn8gxK+AzGLUWRJFdg9JzIbrybQ=",
277
277
  "System.brmz7yk5qh.dll": "sha256-CfM2miyj1KHApFmqMdLYWio3S/jrdON2pW9Xr2nTwlo=",
278
278
  "netstandard.b50t77veor.dll": "sha256-//jQGOXjb8ET8WtXgOJrAxLx6E7zDJ5RjRRutwkvmxo=",
279
- "MindExecution.Core.94m6ejtca1.dll": "sha256-h4BMu1KaPYr8AwhzWLERvjqy1+UqGJm7NISXSGbeBHo=",
280
- "MindExecution.Kernel.61ttjshkyz.dll": "sha256-xtT+n0k7nne80t4G4jbMspn4PJ0dgYDoFyDBxAlnvqw=",
281
- "MindExecution.Plugins.Business.ohwctqyt61.dll": "sha256-hItTqNXmf6iXbCTFoCdv3Gx+AjcIsamwLXJmK+VWEHA=",
282
- "MindExecution.Plugins.Concept.f8q8szf0d6.dll": "sha256-MdGQvGdSKxaCQYosvUQV/QcPKMVzLeGLeSMOXa3nIOM=",
283
- "MindExecution.Plugins.PlanMaster.1cwldgvpvn.dll": "sha256-D8xGQeC/8Fv0xSFEQeYPJFrrLzymN/k1yBbLHw4+TGM=",
284
- "MindExecution.Shared.hnzia43ril.dll": "sha256-/U78GwtlD55baMi6tRVPVLMFPAT4+fJE+B9hYVzCR98=",
285
- "MindExecution.Web.cnxtclcio0.dll": "sha256-mI9Fl0XrdpxBAmGSCVpmfQgchfDy5RtERmnSGG5NhIY="
279
+ "MindExecution.Core.p242wvzbdm.dll": "sha256-35J/7FoILxPQctHJIIfSDpXaNJ1hRRcOKZ/yOaPupcI=",
280
+ "MindExecution.Kernel.fygh6o7ah1.dll": "sha256-F4YioJkECmNVNtR0atEmyTrUhLW+jWT7MK4jsEZfh4M=",
281
+ "MindExecution.Plugins.Business.hmmh2iarjz.dll": "sha256-ybbVj4ozR6BnnPorSfctSWFOTUF2Ia3WN05xk6KhoKE=",
282
+ "MindExecution.Plugins.Concept.mxak1yilgh.dll": "sha256-Wj3Q0zd0N7QMWerW1nbDzJOjjNEFnwa1Q38RrgvzrRI=",
283
+ "MindExecution.Plugins.PlanMaster.ijbnd3xmt7.dll": "sha256-LkOxdgVNd9shSW+6sl+XBJ2FJk8kUXXNwaxnLZSnbmI=",
284
+ "MindExecution.Shared.jk6h3848ht.dll": "sha256-fYGO9haZvRyRfccPOxHv59jXkQtb1CuT8/5Vt8KQFzk=",
285
+ "MindExecution.Web.s2oqn7b07d.dll": "sha256-nGDEW6izv5+xQxMuAlZMG5XFkRZNKPfUhNzeLLU5tAo="
286
286
  },
287
287
  "lazyAssembly": {
288
- "MindExecution.Plugins.Admin.4b5expbfln.dll": "sha256-YEe+33ILM8lqiiMY5m2iWK4UpwBPiCmEZ7o/ZvVLLE0=",
289
- "MindExecution.Plugins.Directory.zh2sduii1b.dll": "sha256-pwBNkKlRTCxv+NAuhpFwvtNaD7fOLponx0PjI1g9NgM=",
290
- "MindExecution.Plugins.YouTube.5s3kg6vrqh.dll": "sha256-JehZHzt2llImaxfZqKGypqrZh4nJuNwunl8P4E0ABe4="
288
+ "MindExecution.Plugins.Admin.slf5qsn9pe.dll": "sha256-wCfsTv1BwU3xWC3J15exqZwwFPzPUiNIfBybFvl4Z24=",
289
+ "MindExecution.Plugins.Directory.h0k33bgkfw.dll": "sha256-EXcBUzXs4gVFGFA+3BMOLWJLG45syPzmnwDfHxpvfNk=",
290
+ "MindExecution.Plugins.YouTube.aa5i2z7lvo.dll": "sha256-vraXBaopWjmhqEDfBA0LATY8l9htFIhgFG44sQFuQIk="
291
291
  }
292
292
  },
293
293
  "cacheBootResources": true,
@@ -1,83 +1,83 @@
1
1
  {
2
- "OpenRouter": {
3
- "ApiKey": ""
4
- },
5
- "Execution": {
6
- "Mode": "Concept",
7
- "Model": "openai/gpt-4o-mini"
8
- },
9
- "Supabase": {
10
- "Url": "https://otbyfkjxrkngvjziawki.supabase.co",
11
- "Key": "sb_publishable_NpUs0RDJH2YnllsqTKO6TQ_1jTdSsNQ"
12
- },
13
- "Bridge": {
14
- "Url": "app-origin",
15
- "FallbackPort": 5148,
16
- "AllowHostedLocalFallback": false
17
- },
18
- "ProjectStorage": {
19
- "Mode": "LocalOnly",
20
- "CloudProjectsEnabled": false
21
- },
22
- "CloudflareR2": {
23
- "ProxyUrl": "https://r2-auth-proxy.lovecrdm.workers.dev",
24
- "PublicBaseUrl": "https://r2-auth-proxy.lovecrdm.workers.dev/public",
25
- "PrivateSignUrl": "https://r2-auth-proxy.lovecrdm.workers.dev/sign",
26
- "PrivateBatchSignUrl": "https://r2-auth-proxy.lovecrdm.workers.dev/sign-batch",
27
- "PrivateUrlTtlSeconds": 900
28
- },
29
- "CloudflareWebCapture": {
30
- "EndpointUrl": "https://web-capture-worker.lovecrdm.workers.dev/capture",
31
- "RequestTimeoutMs": 45000
32
- },
33
- "Payments": {
34
- "Provider": "dodo"
35
- },
36
- "DodoPayments": {
37
- "DefaultProductId": "",
38
- "StandardPriceId": "dodo_pro_monthly_v1",
39
- "EarlyPriceId": "dodo_pro_monthly_v1",
40
- "LtdPriceId": "dodo_ltd_launch_v1",
41
- "ReturnUrl": "https://mindexec.pages.dev/pricing",
42
- "Environment": "test_mode"
43
- },
44
- "Paddle": {
45
- "ClientToken": "",
46
- "ProMonthlyPriceId": ""
47
- },
48
- "ProductProfile": {
49
- "VariantKey": "platform",
50
- "Slug": "mindexec",
51
- "BrandName": "MindExec",
52
- "ProductName": "MindCanvas",
53
- "AppTitle": "MindExec",
54
- "WorkspaceNounSingular": "canvas",
55
- "WorkspaceNounPlural": "canvases",
56
- "SignInTitle": "Welcome Back",
57
- "SignUpTitle": "Create Account",
58
- "SignInSubtitle": "Sign in to access your MindCanvas workspace.",
59
- "SignUpSubtitle": "Sign up to start organizing your ideas on a visual canvas.",
60
- "PrimaryCheckoutProvider": "dodo",
61
- "CanonicalHost": "localhost",
62
- "DodoCatalog": {
63
- "StandardPriceId": "dodo_pro_monthly_v1",
64
- "EarlyPriceId": "dodo_pro_monthly_v1",
65
- "LtdPriceId": "dodo_ltd_launch_v1"
66
- },
67
- "MarketingTool": {
68
- "Enabled": false,
69
- "HideAppChrome": true,
70
- "AllowMindCanvasRoute": false,
71
- "HomeRoute": "/",
72
- "ToolKey": "",
73
- "HeroEyebrow": "Free local tool",
74
- "HeroTitle": "",
75
- "HeroSubtitle": "",
76
- "PrimaryCtaText": "Open MindCanvas",
77
- "PrimaryCtaHref": "/mindcanvas",
78
- "SecondaryCtaText": "",
79
- "SecondaryCtaHref": "",
80
- "PrivacyNote": "Runs locally in your browser. No login. No database storage."
81
- }
82
- }
2
+ "OpenRouter": {
3
+ "ApiKey": ""
4
+ },
5
+ "Execution": {
6
+ "Mode": "Concept",
7
+ "Model": "openai/gpt-4o-mini"
8
+ },
9
+ "Supabase": {
10
+ "Url": "https://otbyfkjxrkngvjziawki.supabase.co",
11
+ "Key": "sb_publishable_NpUs0RDJH2YnllsqTKO6TQ_1jTdSsNQ"
12
+ },
13
+ "Bridge": {
14
+ "Url": "app-origin",
15
+ "FallbackPort": 5148,
16
+ "AllowHostedLocalFallback": false
17
+ },
18
+ "ProjectStorage": {
19
+ "Mode": "LocalOnly",
20
+ "CloudProjectsEnabled": false
21
+ },
22
+ "CloudflareR2": {
23
+ "ProxyUrl": "https://r2-auth-proxy.lovecrdm.workers.dev",
24
+ "PublicBaseUrl": "https://r2-auth-proxy.lovecrdm.workers.dev/public",
25
+ "PrivateSignUrl": "https://r2-auth-proxy.lovecrdm.workers.dev/sign",
26
+ "PrivateBatchSignUrl": "https://r2-auth-proxy.lovecrdm.workers.dev/sign-batch",
27
+ "PrivateUrlTtlSeconds": 900
28
+ },
29
+ "CloudflareWebCapture": {
30
+ "EndpointUrl": "https://web-capture-worker.lovecrdm.workers.dev/capture",
31
+ "RequestTimeoutMs": 45000
32
+ },
33
+ "Payments": {
34
+ "Provider": "dodo"
35
+ },
36
+ "DodoPayments": {
37
+ "DefaultProductId": "",
38
+ "StandardPriceId": "dodo_pro_monthly_v1",
39
+ "EarlyPriceId": "dodo_pro_monthly_v1",
40
+ "LtdPriceId": "dodo_ltd_launch_v1",
41
+ "ReturnUrl": "https://mindexec.pages.dev/pricing",
42
+ "Environment": "test_mode"
43
+ },
44
+ "Paddle": {
45
+ "ClientToken": "",
46
+ "ProMonthlyPriceId": ""
47
+ },
48
+ "ProductProfile": {
49
+ "VariantKey": "platform",
50
+ "Slug": "mindexec",
51
+ "BrandName": "MindExec",
52
+ "ProductName": "MindCanvas",
53
+ "AppTitle": "MindExec",
54
+ "WorkspaceNounSingular": "canvas",
55
+ "WorkspaceNounPlural": "canvases",
56
+ "SignInTitle": "Welcome Back",
57
+ "SignUpTitle": "Create Account",
58
+ "SignInSubtitle": "Sign in to access your MindCanvas workspace.",
59
+ "SignUpSubtitle": "Sign up to start organizing your ideas on a visual canvas.",
60
+ "PrimaryCheckoutProvider": "dodo",
61
+ "CanonicalHost": "localhost",
62
+ "DodoCatalog": {
63
+ "StandardPriceId": "dodo_pro_monthly_v1",
64
+ "EarlyPriceId": "dodo_pro_monthly_v1",
65
+ "LtdPriceId": "dodo_ltd_launch_v1"
66
+ },
67
+ "MarketingTool": {
68
+ "Enabled": false,
69
+ "HideAppChrome": true,
70
+ "AllowMindCanvasRoute": false,
71
+ "HomeRoute": "/",
72
+ "ToolKey": "",
73
+ "HeroEyebrow": "Free local tool",
74
+ "HeroTitle": "",
75
+ "HeroSubtitle": "",
76
+ "PrimaryCtaText": "Open MindCanvas",
77
+ "PrimaryCtaHref": "/mindcanvas",
78
+ "SecondaryCtaText": "",
79
+ "SecondaryCtaHref": "",
80
+ "PrivacyNote": "Runs locally in your browser. No login. No database storage."
81
+ }
82
+ }
83
83
  }