@mindexec/cli 0.2.101 → 0.2.103

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 (25) hide show
  1. package/package.json +2 -2
  2. package/remote-hub.js +51 -2
  3. package/scripts/remote-hub-smoke.mjs +8 -0
  4. package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +446 -19
  5. package/wwwroot/_content/MindExecution.Shared/js/mind-map-dnd.js +64 -3
  6. package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +10 -7
  7. package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +3 -2
  8. package/wwwroot/_content/MindExecution.Shared/js/mind-map-node-search-worker.js +1 -0
  9. package/wwwroot/_content/MindExecution.Shared/js/mind-map-nodes.js +3 -2
  10. package/wwwroot/_content/MindExecution.Shared/js/mind-map-pipeline.js +9 -2
  11. package/wwwroot/_framework/MindExecution.Core.fc9cjbjplq.dll +0 -0
  12. package/wwwroot/_framework/{MindExecution.Kernel.7k773jan4j.dll → MindExecution.Kernel.pbzp3jfync.dll} +0 -0
  13. package/wwwroot/_framework/{MindExecution.Plugins.Admin.nr5ioavpvn.dll → MindExecution.Plugins.Admin.gxzwlji1cf.dll} +0 -0
  14. package/wwwroot/_framework/{MindExecution.Plugins.Business.qq63kom73x.dll → MindExecution.Plugins.Business.vtaey8c59y.dll} +0 -0
  15. package/wwwroot/_framework/{MindExecution.Plugins.Concept.w4znwcrl6x.dll → MindExecution.Plugins.Concept.ksc3wkuptm.dll} +0 -0
  16. package/wwwroot/_framework/{MindExecution.Plugins.Directory.u6p6pxpwxp.dll → MindExecution.Plugins.Directory.zc8ffaoknd.dll} +0 -0
  17. package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.0w4vr40lnz.dll → MindExecution.Plugins.PlanMaster.flzcb87jvl.dll} +0 -0
  18. package/wwwroot/_framework/{MindExecution.Plugins.YouTube.sdl5n9uv68.dll → MindExecution.Plugins.YouTube.q4tvods1po.dll} +0 -0
  19. package/wwwroot/_framework/{MindExecution.Shared.6us6j8zcea.dll → MindExecution.Shared.jv6r2n1bvg.dll} +0 -0
  20. package/wwwroot/_framework/{MindExecution.Web.xhlvm1d8ex.dll → MindExecution.Web.3b8az6ed0q.dll} +0 -0
  21. package/wwwroot/_framework/blazor.boot.json +21 -21
  22. package/wwwroot/index.html +3 -3
  23. package/wwwroot/service-worker-assets.js +30 -30
  24. package/wwwroot/service-worker.js +1 -1
  25. package/wwwroot/_framework/MindExecution.Core.cdplo34sb2.dll +0 -0
@@ -71,7 +71,17 @@ window.MindMapDnD = (function () {
71
71
  });
72
72
  }
73
73
 
74
- // 3. Video handler
74
+ // 3. CSV table handler
75
+ if (!window.MindMapFileRegistry.some(h => h.name === 'CoreCSV')) {
76
+ window.MindMapFileRegistry.push({
77
+ name: 'CoreCSV',
78
+ priority: 6,
79
+ check: isCsvFile,
80
+ getType: () => CSV_TABLE_CONTENT_TYPE
81
+ });
82
+ }
83
+
84
+ // 4. Video handler
75
85
  if (!window.MindMapFileRegistry.some(h => h.name === 'CoreVideo')) {
76
86
  window.MindMapFileRegistry.push({
77
87
  name: 'CoreVideo',
@@ -109,7 +119,7 @@ window.MindMapDnD = (function () {
109
119
  '.cpp', '.c', '.h', '.go', '.rs', '.rb', '.php',
110
120
  '.swift', '.kt', '.json', '.xml', '.yaml', '.yml',
111
121
  '.sql', '.html', '.css', '.scss', '.less', '.sh',
112
- '.bat', '.ps1', '.csv', '.razor' // Added .razor for Blazor
122
+ '.bat', '.ps1', '.razor' // Added .razor for Blazor
113
123
  ];
114
124
  window.MindMapFileRegistry.push({
115
125
  name: 'CoreCode',
@@ -123,12 +133,21 @@ window.MindMapDnD = (function () {
123
133
  }
124
134
  // ▲▲▲ [New] ▲▲▲
125
135
 
126
- console.log('[MindMapDnD] Core file handlers (PDF, Image, Video, Text, Code) registered');
136
+ console.log('[MindMapDnD] Core file handlers (PDF, Image, Video, CSV, Text, Code) registered');
127
137
  }
128
138
  registerCoreHandlers();
129
139
 
130
140
  const eventHandlers = new WeakMap();
131
141
  const GRID_SNAP = 10;
142
+ const CSV_TABLE_CONTENT_TYPE = 'csv-table';
143
+
144
+ function isCsvFile(file) {
145
+ const name = String(file?.name || '').toLowerCase();
146
+ const mime = String(file?.type || '').toLowerCase();
147
+ return mime === 'text/csv' ||
148
+ mime === 'application/csv' ||
149
+ name.endsWith('.csv');
150
+ }
132
151
 
133
152
  function computeDroppedImageNodeSize(originalWidth, originalHeight) {
134
153
  if (window.mindMap?.computeImageNodeSize) {
@@ -148,6 +167,30 @@ window.MindMapDnD = (function () {
148
167
  return { width, height };
149
168
  }
150
169
 
170
+ async function readCsvFileText(file) {
171
+ if (file && typeof file.text === 'function') {
172
+ return await file.text();
173
+ }
174
+
175
+ return await new Promise((resolve, reject) => {
176
+ const reader = new FileReader();
177
+ reader.onload = () => resolve(String(reader.result || ''));
178
+ reader.onerror = () => reject(reader.error || new Error('CSV read failed'));
179
+ reader.readAsText(file);
180
+ });
181
+ }
182
+
183
+ function summarizeCsvText(csvText) {
184
+ if (window.MindMapCsvTable?.summarizeCsv) {
185
+ return window.MindMapCsvTable.summarizeCsv(csvText);
186
+ }
187
+
188
+ const firstLine = String(csvText || '').split(/\r\n|\n|\r/, 1)[0] || '';
189
+ const columnCount = firstLine ? Math.max(1, firstLine.split(',').length) : 0;
190
+ const rowCount = Math.max(0, String(csvText || '').split(/\r\n|\n|\r/).filter(Boolean).length - 1);
191
+ return { rowCount, columnCount, delimiter: ',' };
192
+ }
193
+
151
194
  // ▼▼▼ [Profiling] Drag statistics tracking ▼▼▼
152
195
  let _dragStats = {
153
196
  startTime: 0,
@@ -1081,6 +1124,24 @@ window.MindMapDnD = (function () {
1081
1124
  }
1082
1125
 
1083
1126
  isLoading = false;
1127
+ } else if (type === CSV_TABLE_CONTENT_TYPE) {
1128
+ console.log(`[DnD] Processing CSV ${index + 1}: ${file.name}`);
1129
+ finalResponse = await readCsvFileText(file);
1130
+ displayUrl = finalResponse;
1131
+ finalWidth = 720;
1132
+ finalHeight = 420;
1133
+ isLoading = false;
1134
+ const csvSummary = summarizeCsvText(finalResponse);
1135
+ metadata = {
1136
+ assetKind: 'csv',
1137
+ fileName: file.name || '',
1138
+ fileSize: String(file.size || 0),
1139
+ fileMime: file.type || 'text/csv',
1140
+ fileLastModified: String(file.lastModified || ''),
1141
+ CsvDelimiter: csvSummary.delimiter || ',',
1142
+ CsvRowCount: String(csvSummary.rowCount ?? 0),
1143
+ CsvColumnCount: String(csvSummary.columnCount ?? 0)
1144
+ };
1084
1145
  } else if (type === 'text') {
1085
1146
  finalResponse = '⏳ Analyzing file...';
1086
1147
  displayUrl = finalResponse;
@@ -672,7 +672,7 @@ window.MindMapInteractions = (function () {
672
672
 
673
673
  function isReadOnlyTextSelectionNode(target) {
674
674
  const contentType = getNodeContentType(target);
675
- return (contentType === 'text' || contentType === 'markdown') && !isAgentNode(target);
675
+ return (contentType === 'text' || contentType === 'markdown' || contentType === 'csv-table') && !isAgentNode(target);
676
676
  }
677
677
 
678
678
  function isTemplateCardInteractiveTarget(target) {
@@ -2855,8 +2855,8 @@ window.MindMapInteractions = (function () {
2855
2855
  }
2856
2856
  // ▲▲▲ [New] ▲▲▲
2857
2857
 
2858
- const DEFAULT_SCROLLABLE_SELECTORS = '.node-response, .note-content, .markdown-body, .prose, .note-textarea, .code-body, .code-content, .pdf-content, .text-content, .file-content, .map-node-memo__body, .map-node-memo__body-view, pre, code';
2859
- const DEFAULT_TEXT_CONTENT_SELECTORS = '.node-response, .code-body, .text-content, .markdown-body, .prose';
2858
+ const DEFAULT_SCROLLABLE_SELECTORS = '.node-response, .note-content, .markdown-body, .prose, .note-textarea, .code-body, .code-content, .csv-table-scroll, .csv-table-scroll *, .pdf-content, .text-content, .file-content, .map-node-memo__body, .map-node-memo__body-view, pre, code';
2859
+ const DEFAULT_TEXT_CONTENT_SELECTORS = '.node-response, .code-body, .text-content, .markdown-body, .prose, .csv-table-scroll, .csv-table-cell';
2860
2860
 
2861
2861
  function getScrollableSelectors() {
2862
2862
  return window.MindMapCss3DManager?.getTextInteractionScrollableSelectors?.()
@@ -3868,10 +3868,13 @@ window.MindMapInteractions = (function () {
3868
3868
  e.target.classList.contains('node-response') ||
3869
3869
  e.target.classList.contains('text-content') ||
3870
3870
  e.target.classList.contains('markdown-body') ||
3871
- e.target.closest('.code-body') ||
3872
- e.target.closest('.node-response') ||
3873
- e.target.closest('.text-content') ||
3874
- e.target.closest('.markdown-body');
3871
+ e.target.classList.contains('csv-table-scroll') ||
3872
+ e.target.classList.contains('csv-table-cell') ||
3873
+ e.target.closest('.code-body') ||
3874
+ e.target.closest('.node-response') ||
3875
+ e.target.closest('.text-content') ||
3876
+ e.target.closest('.markdown-body') ||
3877
+ e.target.closest('.csv-table-scroll');
3875
3878
 
3876
3879
  // ▼▼▼ [2-Stage Click] text-based 노드가 이미 편집 모드(CSS3D)인 경우에만 텍스트 선택 허용 ▼▼▼
3877
3880
  if (supportsTextInteraction && isClickOnContent && !isMultiModifier && isSelected) {
@@ -366,6 +366,7 @@
366
366
  contentType === 'memo' ||
367
367
  contentType === 'markdown' ||
368
368
  contentType === 'code' ||
369
+ contentType === 'csv-table' ||
369
370
  isAgentLikeLodNode(model);
370
371
  }
371
372
 
@@ -7526,7 +7527,7 @@
7526
7527
  if (!root) return '';
7527
7528
 
7528
7529
  const values = [];
7529
- const editableSelector = 'textarea, input, [contenteditable="true"], .note-content, .node-response, .markdown-body, .code-body, .text-content, .map-node-memo__body, .map-node-memo__body-view';
7530
+ const editableSelector = 'textarea, input, [contenteditable="true"], .note-content, .node-response, .markdown-body, .code-body, .text-content, .csv-table-scroll, .csv-table-cell, .map-node-memo__body, .map-node-memo__body-view';
7530
7531
  const targets = root.matches?.(editableSelector)
7531
7532
  ? [root, ...root.querySelectorAll?.(editableSelector) || []]
7532
7533
  : Array.from(root.querySelectorAll?.(editableSelector) || []);
@@ -7614,7 +7615,7 @@
7614
7615
  const root = entry?.cssObject?.element || null;
7615
7616
  if (!root || typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') return null;
7616
7617
 
7617
- const selector = 'textarea, [id^="node-response-"], [id^="node-textarea-"], .note-content, .node-response, .markdown-body, .code-body, .simple-content, .markdown-content, .map-node-memo__body, .map-node-memo__body-view';
7618
+ const selector = 'textarea, [id^="node-response-"], [id^="node-textarea-"], .note-content, .node-response, .markdown-body, .code-body, .csv-table-scroll, .simple-content, .markdown-content, .map-node-memo__body, .map-node-memo__body-view';
7618
7619
  const target = root.matches?.(selector)
7619
7620
  ? root
7620
7621
  : root.querySelector?.(selector);
@@ -45,6 +45,7 @@ function shouldIndexResponse(contentType) {
45
45
  || contentType === 'memo'
46
46
  || contentType === 'markdown'
47
47
  || contentType === 'code'
48
+ || contentType === 'csv-table'
48
49
  || contentType === 'directory';
49
50
  }
50
51
 
@@ -34,7 +34,7 @@
34
34
  gray: { border: 0xd1d5db, accent: 0x6b7280 },
35
35
  slate: { border: 0xcbd5e1, accent: 0x64748b }
36
36
  };
37
- const NODE_TEXT_SELECTION_SELECTORS = '.node-response, .code-body, .text-content, .markdown-body, textarea, .map-node-memo__title, .map-node-memo__body, .map-node-memo__body-view, .map-node-memo__body-view *';
37
+ const NODE_TEXT_SELECTION_SELECTORS = '.node-response, .code-body, .text-content, .markdown-body, .csv-table-scroll, .csv-table-cell, textarea, .map-node-memo__title, .map-node-memo__body, .map-node-memo__body-view, .map-node-memo__body-view *';
38
38
  const NODE_INTERACTIVE_CONTENT_SELECTORS = `${NODE_TEXT_SELECTION_SELECTORS}, .embed-content, .embed-card, .embed-card *, .embed-action, .embed-play-button, iframe, .map-node-memo__icon-button, .map-node-memo__icon-option, .map-node-memo__icon-popover, .map-node-memo__agent-action, .map-node-memo__agent-result-link, .map-node-memo__agent-plan-panel, .map-node-memo__agent-plan-body, .map-node-memo__agent-plan-body *, .map-node-memo__agent-console-panel, .map-node-memo__agent-console-body, .map-node-memo__agent-console-body *, .map-node-memo__agent-console-resize, .map-node-memo__agent-console-resize *`;
39
39
  const MEMO_EDIT_ONLY_SELECTORS = '.map-node-memo__title, .map-node-memo__body, .map-node-memo__icon-button, .map-node-memo__icon-option, .map-node-memo__icon-popover';
40
40
 
@@ -3984,7 +3984,7 @@
3984
3984
  async function switchToCss3D(module, nodeId) {
3985
3985
  const nodeEntry = module.nodeObjectsById.get(nodeId);
3986
3986
  // ▼▼▼ [Log] Reason for skipping switch (SwitchToCss3D) ▼▼▼
3987
- const supportedTypes = ['note', 'memo', 'code', 'text', 'markdown', 'image', 'video', 'embed'];
3987
+ const supportedTypes = ['note', 'memo', 'code', 'text', 'markdown', 'csv-table', 'image', 'video', 'embed'];
3988
3988
  if (!nodeEntry || !supportedTypes.includes(nodeEntry.model.contentType) || !nodeEntry.cssObject) {
3989
3989
  log(`[MindMapNodes] SwitchToCss3D(${nodeId}) SKIPPED (Not a valid, initialized text-based node).`);
3990
3990
  return;
@@ -4154,6 +4154,7 @@
4154
4154
  nodeEntry.model.contentType === 'memo' ||
4155
4155
  nodeEntry.model.contentType === 'markdown' ||
4156
4156
  nodeEntry.model.contentType === 'code' ||
4157
+ nodeEntry.model.contentType === 'csv-table' ||
4157
4158
  nodeEntry.model.contentType === 'image' ||
4158
4159
  nodeEntry.model.contentType === 'video' ||
4159
4160
  nodeEntry.model.contentType === 'embed';
@@ -17,6 +17,9 @@
17
17
  const ENABLE_WEBGL_GLOW = false;
18
18
  const DEFAULT_MIN_NODE_WIDTH = 200;
19
19
  const DEFAULT_MIN_NODE_HEIGHT = 100;
20
+ const CSV_TABLE_CONTENT_TYPE = 'csv-table';
21
+ const CSV_TABLE_MIN_WIDTH = 320;
22
+ const CSV_TABLE_MIN_HEIGHT = 180;
20
23
  const REMOTE_FLEET_SEMANTIC_TYPE = 'RemoteFleetMonitor';
21
24
  const REMOTE_FLEET_MONITOR_MIN_WIDTH = 520;
22
25
  const REMOTE_FLEET_MONITOR_MIN_HEIGHT = 320;
@@ -30,6 +33,10 @@
30
33
  return String(metadata?.SemanticType || metadata?.semanticType || '').trim() === REMOTE_FLEET_SEMANTIC_TYPE;
31
34
  }
32
35
 
36
+ function isCsvTableNodeModel(nodeModel) {
37
+ return String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').trim().toLowerCase() === CSV_TABLE_CONTENT_TYPE;
38
+ }
39
+
33
40
  function clampRemoteFleetResizeDimensions(
34
41
  nodeModel,
35
42
  width,
@@ -38,10 +45,10 @@
38
45
  fallbackMinHeight = DEFAULT_MIN_NODE_HEIGHT) {
39
46
  const minWidth = isRemoteFleetMonitorNodeModel(nodeModel)
40
47
  ? REMOTE_FLEET_MONITOR_MIN_WIDTH
41
- : fallbackMinWidth;
48
+ : (isCsvTableNodeModel(nodeModel) ? CSV_TABLE_MIN_WIDTH : fallbackMinWidth);
42
49
  const minHeight = isRemoteFleetMonitorNodeModel(nodeModel)
43
50
  ? REMOTE_FLEET_MONITOR_MIN_HEIGHT
44
- : fallbackMinHeight;
51
+ : (isCsvTableNodeModel(nodeModel) ? CSV_TABLE_MIN_HEIGHT : fallbackMinHeight);
45
52
 
46
53
  const numericWidth = Number(width);
47
54
  const numericHeight = Number(height);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "MindExecution.Web",
3
3
  "resources": {
4
- "hash": "sha256-O56zjZxMQ+5iNAfOtWs8fbscWSt6EeGUYf66mN+CfeU=",
4
+ "hash": "sha256-Br4DWyqxlRmH44i0F0OYs/cbiMcQZSXhuRDCRobDEAQ=",
5
5
  "fingerprinting": {
6
6
  "Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
7
7
  "Markdig.d1j7v41cl1.dll": "Markdig.dll",
@@ -123,16 +123,16 @@
123
123
  "System.brmz7yk5qh.dll": "System.dll",
124
124
  "netstandard.yvr3prsx0x.dll": "netstandard.dll",
125
125
  "System.Private.CoreLib.c1dbswx1b2.dll": "System.Private.CoreLib.dll",
126
- "MindExecution.Core.cdplo34sb2.dll": "MindExecution.Core.dll",
127
- "MindExecution.Kernel.7k773jan4j.dll": "MindExecution.Kernel.dll",
128
- "MindExecution.Plugins.Admin.nr5ioavpvn.dll": "MindExecution.Plugins.Admin.dll",
129
- "MindExecution.Plugins.Business.qq63kom73x.dll": "MindExecution.Plugins.Business.dll",
130
- "MindExecution.Plugins.Concept.w4znwcrl6x.dll": "MindExecution.Plugins.Concept.dll",
131
- "MindExecution.Plugins.Directory.u6p6pxpwxp.dll": "MindExecution.Plugins.Directory.dll",
132
- "MindExecution.Plugins.PlanMaster.0w4vr40lnz.dll": "MindExecution.Plugins.PlanMaster.dll",
133
- "MindExecution.Plugins.YouTube.sdl5n9uv68.dll": "MindExecution.Plugins.YouTube.dll",
134
- "MindExecution.Shared.6us6j8zcea.dll": "MindExecution.Shared.dll",
135
- "MindExecution.Web.xhlvm1d8ex.dll": "MindExecution.Web.dll",
126
+ "MindExecution.Core.fc9cjbjplq.dll": "MindExecution.Core.dll",
127
+ "MindExecution.Kernel.pbzp3jfync.dll": "MindExecution.Kernel.dll",
128
+ "MindExecution.Plugins.Admin.gxzwlji1cf.dll": "MindExecution.Plugins.Admin.dll",
129
+ "MindExecution.Plugins.Business.vtaey8c59y.dll": "MindExecution.Plugins.Business.dll",
130
+ "MindExecution.Plugins.Concept.ksc3wkuptm.dll": "MindExecution.Plugins.Concept.dll",
131
+ "MindExecution.Plugins.Directory.zc8ffaoknd.dll": "MindExecution.Plugins.Directory.dll",
132
+ "MindExecution.Plugins.PlanMaster.flzcb87jvl.dll": "MindExecution.Plugins.PlanMaster.dll",
133
+ "MindExecution.Plugins.YouTube.q4tvods1po.dll": "MindExecution.Plugins.YouTube.dll",
134
+ "MindExecution.Shared.jv6r2n1bvg.dll": "MindExecution.Shared.dll",
135
+ "MindExecution.Web.3b8az6ed0q.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",
@@ -278,18 +278,18 @@
278
278
  "System.Xml.XDocument.sn51jas17n.dll": "sha256-GNI2kFgFmPTwzuzwUn8gxK+AzGLUWRJFdg9JzIbrybQ=",
279
279
  "System.brmz7yk5qh.dll": "sha256-CfM2miyj1KHApFmqMdLYWio3S/jrdON2pW9Xr2nTwlo=",
280
280
  "netstandard.yvr3prsx0x.dll": "sha256-EksNn8Luo4bOWqJ6X7dIe9qG9oOqwOVzjH2xYyMNi+E=",
281
- "MindExecution.Core.cdplo34sb2.dll": "sha256-sLc0yEeGYQhFPxxNKLQsHllAhwjKhNn+pfgRY0bHbpo=",
282
- "MindExecution.Kernel.7k773jan4j.dll": "sha256-B5H6hzB6g8sWLqXUoXifv8CbLqVt7g1lLkkinTBKF8E=",
283
- "MindExecution.Plugins.Concept.w4znwcrl6x.dll": "sha256-oNGAmbTjkFdVfZeYbc4jYWtyQa3c8Tle5LIXoFye4yo=",
284
- "MindExecution.Plugins.PlanMaster.0w4vr40lnz.dll": "sha256-gPWCEzDE7cJLOFTJOhja3JXJzkHFWd4dzfRdsdTxwps=",
285
- "MindExecution.Shared.6us6j8zcea.dll": "sha256-guVuBtyzsP6SsCtNUfA0tstOgfKPNycx1cgtuoL206Q=",
286
- "MindExecution.Web.xhlvm1d8ex.dll": "sha256-azcD8wLJIxuNSplzTVvh2ndLwdcu20xz1t8Jh23Dr7Q="
281
+ "MindExecution.Core.fc9cjbjplq.dll": "sha256-TymUFwryFLdbCYy2U5qdgE2ZV1yHaLR9bgyrmx6Tcp0=",
282
+ "MindExecution.Kernel.pbzp3jfync.dll": "sha256-Ff6WHyLD39V0fEjUiQlxX9Y+edssyTH+7T4zfBdj3s0=",
283
+ "MindExecution.Plugins.Concept.ksc3wkuptm.dll": "sha256-fIy3+/z7i12WktCVlAHG6hJGVOSgzWJNGXiDrArviYU=",
284
+ "MindExecution.Plugins.PlanMaster.flzcb87jvl.dll": "sha256-zYXs1kS13yT6eDgbsthOX4Ku1n3P+TnPn8oIhJVwxQ0=",
285
+ "MindExecution.Shared.jv6r2n1bvg.dll": "sha256-cdYJze5sGTmNGOvWL+BktfURuCHsKmec9PB0emQVJ38=",
286
+ "MindExecution.Web.3b8az6ed0q.dll": "sha256-cbwDzpFNXJ2mcIVtZC6fNkvXq4K+q0QTXJ5EGuTKL7w="
287
287
  },
288
288
  "lazyAssembly": {
289
- "MindExecution.Plugins.Admin.nr5ioavpvn.dll": "sha256-TWIfHGuEUUD1JtyuhfH4NM5JkvqAt8KcDVrWxvmwnVc=",
290
- "MindExecution.Plugins.Business.qq63kom73x.dll": "sha256-4lgIcKclWQIjijrBJJFu84fgAH4MsDCN/myhG/K9OOU=",
291
- "MindExecution.Plugins.Directory.u6p6pxpwxp.dll": "sha256-BjJ6/XNfp5wd/1RTdh99X9RR0I1GV6t4bp5A+RlAK9s=",
292
- "MindExecution.Plugins.YouTube.sdl5n9uv68.dll": "sha256-gNZE7M6cqiF9aEJYdZtUzt5bYPkh5Be7LKuyh286u2Q="
289
+ "MindExecution.Plugins.Admin.gxzwlji1cf.dll": "sha256-5D5B2ZuUMj46zBMgH2dRA7CbQf++uukMPrEliFLuZWs=",
290
+ "MindExecution.Plugins.Business.vtaey8c59y.dll": "sha256-rU9MzRRmHuj0/IluV1dvE6x3aRCK/DA4DWKy1DO4VVg=",
291
+ "MindExecution.Plugins.Directory.zc8ffaoknd.dll": "sha256-Ey/HajaVuBxB/Ou4qsM70nhAZBoODeCENzG1J/uEsxs=",
292
+ "MindExecution.Plugins.YouTube.q4tvods1po.dll": "sha256-OhEl9VDjIXBCZq3inYSQyNDRco3oQAp7G95eZIq9IeM="
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=20260616-settings-stable-v561" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260616-settings-stable-v561" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260616-remote-live-fresh-v563" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260616-remote-live-fresh-v563" />
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 = '20260616-settings-stable-v561';
582
+ const scriptVersion = '20260616-remote-live-fresh-v563';
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": "4FFMY3D0",
2
+ "version": "0GkQkAf6",
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-MWVSM/VwUCyDL+ohY/7e6qDkkosGiE9E3t3DbiGJJEs=",
89
+ "hash": "sha256-DhSn/UhaZNiUWVI6SxAXUCT4ZJ1rTb0M4ZAzWBF4ibU=",
90
90
  "url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
91
91
  },
92
92
  {
@@ -94,7 +94,7 @@
94
94
  "url": "_content/MindExecution.Shared/js/mind-map-dev-guards.js"
95
95
  },
96
96
  {
97
- "hash": "sha256-dJFVGib0fUeandu5Tvb2Wtpq1w7XwxD8g2Dd+loVK+Q=",
97
+ "hash": "sha256-NZcjN5Pbkxuki2/z029Yog58DHkZDsmDU5baRgMruis=",
98
98
  "url": "_content/MindExecution.Shared/js/mind-map-dnd.js"
99
99
  },
100
100
  {
@@ -106,7 +106,7 @@
106
106
  "url": "_content/MindExecution.Shared/js/mind-map-glow-shader.js"
107
107
  },
108
108
  {
109
- "hash": "sha256-QJh7a93uHYeGLXH8R87u9/oky9uJLW2p6eSMODlGjY0=",
109
+ "hash": "sha256-l1g4NKeSMjorH0cZmdjmzRef2W6vPhmZgoNeo4TWKl8=",
110
110
  "url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
111
111
  },
112
112
  {
@@ -114,7 +114,7 @@
114
114
  "url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
115
115
  },
116
116
  {
117
- "hash": "sha256-NTCDYnA/mG2tplidYmMv50OhHhdXjP985NlsjsyQ38g=",
117
+ "hash": "sha256-/I+97B4sBuC4ON9Ytp2crB+yaSXnxgr1wq35P/GZ4O0=",
118
118
  "url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
119
119
  },
120
120
  {
@@ -130,11 +130,11 @@
130
130
  "url": "_content/MindExecution.Shared/js/mind-map-multi-select.js"
131
131
  },
132
132
  {
133
- "hash": "sha256-xJssU1XGBgy2NYVRe5JKRRFmQNq7BufzFXhZjHDq/lU=",
133
+ "hash": "sha256-t9Clrdzh+IKymPvwLSXd4sHSiTkGKj6Xb8cbTl5Q/aA=",
134
134
  "url": "_content/MindExecution.Shared/js/mind-map-node-search-worker.js"
135
135
  },
136
136
  {
137
- "hash": "sha256-MmWAqcPEjWAGKxEpAAwKMDEaaN5eZS7jpmC7fiXircc=",
137
+ "hash": "sha256-Du/v38HmdprkhvETqiO0mx3Ez3rYmEvjQnDMIQclta0=",
138
138
  "url": "_content/MindExecution.Shared/js/mind-map-nodes.js"
139
139
  },
140
140
  {
@@ -146,7 +146,7 @@
146
146
  "url": "_content/MindExecution.Shared/js/mind-map-object-manager.js.backup"
147
147
  },
148
148
  {
149
- "hash": "sha256-qoG82XBRkzLFD9Fm/Rmr0k6P+IWL4ZxUyTY4EIfc1hM=",
149
+ "hash": "sha256-7gt5GUp6oiL+vW1pakGSnwgtljCyI3Qh96qAU0hV7Ak=",
150
150
  "url": "_content/MindExecution.Shared/js/mind-map-pipeline.js"
151
151
  },
152
152
  {
@@ -410,44 +410,44 @@
410
410
  "url": "_framework/MimeMapping.og9ys58ylm.dll"
411
411
  },
412
412
  {
413
- "hash": "sha256-sLc0yEeGYQhFPxxNKLQsHllAhwjKhNn+pfgRY0bHbpo=",
414
- "url": "_framework/MindExecution.Core.cdplo34sb2.dll"
413
+ "hash": "sha256-TymUFwryFLdbCYy2U5qdgE2ZV1yHaLR9bgyrmx6Tcp0=",
414
+ "url": "_framework/MindExecution.Core.fc9cjbjplq.dll"
415
415
  },
416
416
  {
417
- "hash": "sha256-B5H6hzB6g8sWLqXUoXifv8CbLqVt7g1lLkkinTBKF8E=",
418
- "url": "_framework/MindExecution.Kernel.7k773jan4j.dll"
417
+ "hash": "sha256-Ff6WHyLD39V0fEjUiQlxX9Y+edssyTH+7T4zfBdj3s0=",
418
+ "url": "_framework/MindExecution.Kernel.pbzp3jfync.dll"
419
419
  },
420
420
  {
421
- "hash": "sha256-TWIfHGuEUUD1JtyuhfH4NM5JkvqAt8KcDVrWxvmwnVc=",
422
- "url": "_framework/MindExecution.Plugins.Admin.nr5ioavpvn.dll"
421
+ "hash": "sha256-5D5B2ZuUMj46zBMgH2dRA7CbQf++uukMPrEliFLuZWs=",
422
+ "url": "_framework/MindExecution.Plugins.Admin.gxzwlji1cf.dll"
423
423
  },
424
424
  {
425
- "hash": "sha256-4lgIcKclWQIjijrBJJFu84fgAH4MsDCN/myhG/K9OOU=",
426
- "url": "_framework/MindExecution.Plugins.Business.qq63kom73x.dll"
425
+ "hash": "sha256-rU9MzRRmHuj0/IluV1dvE6x3aRCK/DA4DWKy1DO4VVg=",
426
+ "url": "_framework/MindExecution.Plugins.Business.vtaey8c59y.dll"
427
427
  },
428
428
  {
429
- "hash": "sha256-oNGAmbTjkFdVfZeYbc4jYWtyQa3c8Tle5LIXoFye4yo=",
430
- "url": "_framework/MindExecution.Plugins.Concept.w4znwcrl6x.dll"
429
+ "hash": "sha256-fIy3+/z7i12WktCVlAHG6hJGVOSgzWJNGXiDrArviYU=",
430
+ "url": "_framework/MindExecution.Plugins.Concept.ksc3wkuptm.dll"
431
431
  },
432
432
  {
433
- "hash": "sha256-BjJ6/XNfp5wd/1RTdh99X9RR0I1GV6t4bp5A+RlAK9s=",
434
- "url": "_framework/MindExecution.Plugins.Directory.u6p6pxpwxp.dll"
433
+ "hash": "sha256-Ey/HajaVuBxB/Ou4qsM70nhAZBoODeCENzG1J/uEsxs=",
434
+ "url": "_framework/MindExecution.Plugins.Directory.zc8ffaoknd.dll"
435
435
  },
436
436
  {
437
- "hash": "sha256-gPWCEzDE7cJLOFTJOhja3JXJzkHFWd4dzfRdsdTxwps=",
438
- "url": "_framework/MindExecution.Plugins.PlanMaster.0w4vr40lnz.dll"
437
+ "hash": "sha256-zYXs1kS13yT6eDgbsthOX4Ku1n3P+TnPn8oIhJVwxQ0=",
438
+ "url": "_framework/MindExecution.Plugins.PlanMaster.flzcb87jvl.dll"
439
439
  },
440
440
  {
441
- "hash": "sha256-gNZE7M6cqiF9aEJYdZtUzt5bYPkh5Be7LKuyh286u2Q=",
442
- "url": "_framework/MindExecution.Plugins.YouTube.sdl5n9uv68.dll"
441
+ "hash": "sha256-OhEl9VDjIXBCZq3inYSQyNDRco3oQAp7G95eZIq9IeM=",
442
+ "url": "_framework/MindExecution.Plugins.YouTube.q4tvods1po.dll"
443
443
  },
444
444
  {
445
- "hash": "sha256-guVuBtyzsP6SsCtNUfA0tstOgfKPNycx1cgtuoL206Q=",
446
- "url": "_framework/MindExecution.Shared.6us6j8zcea.dll"
445
+ "hash": "sha256-cdYJze5sGTmNGOvWL+BktfURuCHsKmec9PB0emQVJ38=",
446
+ "url": "_framework/MindExecution.Shared.jv6r2n1bvg.dll"
447
447
  },
448
448
  {
449
- "hash": "sha256-azcD8wLJIxuNSplzTVvh2ndLwdcu20xz1t8Jh23Dr7Q=",
450
- "url": "_framework/MindExecution.Web.xhlvm1d8ex.dll"
449
+ "hash": "sha256-cbwDzpFNXJ2mcIVtZC6fNkvXq4K+q0QTXJ5EGuTKL7w=",
450
+ "url": "_framework/MindExecution.Web.3b8az6ed0q.dll"
451
451
  },
452
452
  {
453
453
  "hash": "sha256-IsZJ91/OW+fHzNqIgEc7Y072ns8z9dGritiSyvR9Wgc=",
@@ -770,7 +770,7 @@
770
770
  "url": "_framework/Websocket.Client.vapounvmnl.dll"
771
771
  },
772
772
  {
773
- "hash": "sha256-otJjpIYsVvUHEgoeo6sg1eNW43aM4CP9H1meWzXWQWA=",
773
+ "hash": "sha256-5j809S+7v/sq5DbtGGZHh2z8V4kL+rCKD7nhboJYuxQ=",
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-lI1tEHVVoywntPHXryYZLXNjfn1/QsMbGnAZcu7zHWg=",
837
+ "hash": "sha256-2B93M5xFDpgqUOcnXJPakFVZ1W1wwThzsOo3U1cQtto=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: 4FFMY3D0 */
1
+ /* Manifest version: 0GkQkAf6 */
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