@mindexec/cli 0.2.4 → 0.2.5
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/README.md +8 -0
- package/package.json +1 -1
- package/remote-hub.js +27 -4
- package/scripts/remote-hub-smoke.mjs +35 -1
- package/server.js +7 -2
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +50 -7
- package/wwwroot/_framework/MindExecution.Core.27f2blpou6.dll +0 -0
- package/wwwroot/_framework/{MindExecution.Kernel.8sz1fl3k6s.dll → MindExecution.Kernel.9wfplilp5l.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Admin.iltai5c3i9.dll → MindExecution.Plugins.Admin.sb1vkmct0w.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Business.mscgb1gwpf.dll → MindExecution.Plugins.Business.zr7rkofx44.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Concept.s888y8snr4.dll → MindExecution.Plugins.Concept.g6wd36v92i.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Directory.281klijdzl.dll → MindExecution.Plugins.Directory.bb5flwt0u7.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.2gy2ozelqp.dll → MindExecution.Plugins.PlanMaster.me8v9fpgwc.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.YouTube.1v8o9nnlzq.dll → MindExecution.Plugins.YouTube.l811fqx9e0.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Shared.04anisxh35.dll → MindExecution.Shared.oseamdg577.dll} +0 -0
- package/wwwroot/_framework/MindExecution.Web.96r3nnp9is.dll +0 -0
- package/wwwroot/_framework/blazor.boot.json +21 -21
- package/wwwroot/index.html +1 -1
- package/wwwroot/service-worker-assets.js +24 -24
- package/wwwroot/service-worker.js +1 -1
- package/wwwroot/_framework/MindExecution.Core.rydw4mhsbd.dll +0 -0
- package/wwwroot/_framework/MindExecution.Web.0qdidsf6sl.dll +0 -0
package/README.md
CHANGED
|
@@ -95,6 +95,14 @@ curl -X POST -H "X-Bridge-Token: <bridge-token>" -H "Content-Type: application/j
|
|
|
95
95
|
http://127.0.0.1:5147/api/remote/tasks
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
+
Queue an opt-in text-only AI assist task for agents started with `--ai`:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
curl -X POST -H "X-Bridge-Token: <bridge-token>" -H "Content-Type: application/json" \
|
|
102
|
+
-d "{\"instruction\":\"Summarize what this computer should do next.\",\"allConnected\":true,\"approvalLevel\":\"ai-assist\"}" \
|
|
103
|
+
http://127.0.0.1:5147/api/remote/tasks
|
|
104
|
+
```
|
|
105
|
+
|
|
98
106
|
?먮뒗 ?꾩뿭 ?ㅼ튂 ???ㅽ뻾?⑸땲??
|
|
99
107
|
|
|
100
108
|
```bash
|
package/package.json
CHANGED
package/remote-hub.js
CHANGED
|
@@ -45,6 +45,22 @@ function safeText(value, maxLength = 1000) {
|
|
|
45
45
|
return String(value ?? '').replace(/\0/g, '').trim().slice(0, maxLength);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
function normalizeApprovalLevel(value) {
|
|
49
|
+
const level = safeString(value, 80).toLowerCase();
|
|
50
|
+
return level === 'ai-assist' ? 'ai-assist' : 'task-only';
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function readCapabilityFlag(capabilities, key) {
|
|
54
|
+
const value = capabilities?.[key];
|
|
55
|
+
if (typeof value === 'boolean') {
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
58
|
+
if (typeof value === 'number') {
|
|
59
|
+
return value !== 0;
|
|
60
|
+
}
|
|
61
|
+
return /^(1|true|yes|on)$/i.test(String(value || '').trim());
|
|
62
|
+
}
|
|
63
|
+
|
|
48
64
|
function normalizeDeviceId(value) {
|
|
49
65
|
const id = safeString(value, 128).replace(/[^a-zA-Z0-9_.:-]/g, '-');
|
|
50
66
|
return id || crypto.randomUUID();
|
|
@@ -644,6 +660,11 @@ export function createRemoteHub(options = {}) {
|
|
|
644
660
|
}
|
|
645
661
|
|
|
646
662
|
const now = new Date().toISOString();
|
|
663
|
+
const approvalLevel = normalizeApprovalLevel(options.approvalLevel);
|
|
664
|
+
if (approvalLevel === 'ai-assist' && !readCapabilityFlag(device.capabilities, 'aiAssist')) {
|
|
665
|
+
return { ok: false, error: 'device-ai-assist-unavailable' };
|
|
666
|
+
}
|
|
667
|
+
|
|
647
668
|
const commandId = safeString(options.commandId, 128) || crypto.randomUUID();
|
|
648
669
|
const taskId = safeString(options.taskId, 128) || crypto.randomUUID();
|
|
649
670
|
const title = safeString(options.title, 120)
|
|
@@ -655,7 +676,7 @@ export function createRemoteHub(options = {}) {
|
|
|
655
676
|
title,
|
|
656
677
|
instructionPreview: safeText(instruction, 320),
|
|
657
678
|
status: 'queued',
|
|
658
|
-
approvalLevel
|
|
679
|
+
approvalLevel,
|
|
659
680
|
requestedAt: now,
|
|
660
681
|
sentAt: now,
|
|
661
682
|
updatedAt: now,
|
|
@@ -673,7 +694,8 @@ export function createRemoteHub(options = {}) {
|
|
|
673
694
|
taskId,
|
|
674
695
|
title,
|
|
675
696
|
instruction,
|
|
676
|
-
approvalLevel
|
|
697
|
+
approvalLevel,
|
|
698
|
+
model: safeString(options.model, 120),
|
|
677
699
|
requestedAt: now
|
|
678
700
|
},
|
|
679
701
|
issuedAt: now
|
|
@@ -689,9 +711,10 @@ export function createRemoteHub(options = {}) {
|
|
|
689
711
|
emitRemoteEvent('RemoteTaskQueued', device, {
|
|
690
712
|
commandId,
|
|
691
713
|
taskId,
|
|
692
|
-
title
|
|
714
|
+
title,
|
|
715
|
+
approvalLevel
|
|
693
716
|
});
|
|
694
|
-
return { ok: true, commandId, taskId };
|
|
717
|
+
return { ok: true, commandId, taskId, approvalLevel };
|
|
695
718
|
}
|
|
696
719
|
|
|
697
720
|
function requestThumbnail(deviceId, options = {}) {
|
|
@@ -62,7 +62,9 @@ try {
|
|
|
62
62
|
thumbnail: false,
|
|
63
63
|
control: false,
|
|
64
64
|
computerAgent: true,
|
|
65
|
-
taskDispatch: true
|
|
65
|
+
taskDispatch: true,
|
|
66
|
+
aiAssist: true,
|
|
67
|
+
aiModel: 'fake-ai'
|
|
66
68
|
}
|
|
67
69
|
});
|
|
68
70
|
writeJsonLine(socket, {
|
|
@@ -138,6 +140,38 @@ try {
|
|
|
138
140
|
assert.equal(taskDevice.counters.tasksQueued, 1);
|
|
139
141
|
assert.equal(taskDevice.counters.taskResultsReceived, 1);
|
|
140
142
|
|
|
143
|
+
const aiTaskCommand = hub.requestAgentTask('smoke-device', {
|
|
144
|
+
instruction: 'Use AI assist to summarize the smoke test state.',
|
|
145
|
+
title: 'Smoke AI task',
|
|
146
|
+
approvalLevel: 'ai-assist'
|
|
147
|
+
});
|
|
148
|
+
assert.equal(aiTaskCommand.ok, true);
|
|
149
|
+
assert.equal(aiTaskCommand.approvalLevel, 'ai-assist');
|
|
150
|
+
writeJsonLine(socket, {
|
|
151
|
+
type: 'command.result',
|
|
152
|
+
commandId: aiTaskCommand.commandId,
|
|
153
|
+
result: {
|
|
154
|
+
kind: 'agent.task',
|
|
155
|
+
mode: 'ai-assist',
|
|
156
|
+
taskId: aiTaskCommand.taskId,
|
|
157
|
+
status: 'completed',
|
|
158
|
+
summary: 'Smoke AI task accepted.',
|
|
159
|
+
completedAt: new Date().toISOString()
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
const aiTaskDevice = await waitFor(() => {
|
|
164
|
+
const current = hub.listDevices();
|
|
165
|
+
return current[0]?.latestTask?.taskId === aiTaskCommand.taskId
|
|
166
|
+
&& current[0]?.latestTask?.approvalLevel === 'ai-assist'
|
|
167
|
+
&& current[0]?.latestTask?.status === 'completed'
|
|
168
|
+
? current[0]
|
|
169
|
+
: null;
|
|
170
|
+
});
|
|
171
|
+
assert.equal(aiTaskDevice.latestTask.resultSummary, 'Smoke AI task accepted.');
|
|
172
|
+
assert.equal(aiTaskDevice.counters.tasksQueued, 2);
|
|
173
|
+
assert.equal(aiTaskDevice.counters.taskResultsReceived, 2);
|
|
174
|
+
|
|
141
175
|
socket.destroy();
|
|
142
176
|
await waitFor(() => hub.listDevices()[0]?.connected === false);
|
|
143
177
|
console.log('RemoteHub smoke OK');
|
package/server.js
CHANGED
|
@@ -6992,7 +6992,9 @@ app.post('/api/remote/devices/:deviceId/tasks', (req, res) => {
|
|
|
6992
6992
|
instruction: req.body?.instruction,
|
|
6993
6993
|
title: req.body?.title,
|
|
6994
6994
|
taskId: req.body?.taskId,
|
|
6995
|
-
commandId: req.body?.commandId
|
|
6995
|
+
commandId: req.body?.commandId,
|
|
6996
|
+
approvalLevel: req.body?.approvalLevel,
|
|
6997
|
+
model: req.body?.model
|
|
6996
6998
|
}));
|
|
6997
6999
|
});
|
|
6998
7000
|
|
|
@@ -7010,7 +7012,9 @@ app.post('/api/remote/tasks', (req, res) => {
|
|
|
7010
7012
|
deviceId,
|
|
7011
7013
|
...remoteHub.requestAgentTask(deviceId, {
|
|
7012
7014
|
instruction: req.body?.instruction,
|
|
7013
|
-
title: req.body?.title
|
|
7015
|
+
title: req.body?.title,
|
|
7016
|
+
approvalLevel: req.body?.approvalLevel,
|
|
7017
|
+
model: req.body?.model
|
|
7014
7018
|
})
|
|
7015
7019
|
}));
|
|
7016
7020
|
const queued = results.filter(result => result.ok === true).length;
|
|
@@ -7018,6 +7022,7 @@ app.post('/api/remote/tasks', (req, res) => {
|
|
|
7018
7022
|
ok: queued > 0,
|
|
7019
7023
|
total: uniqueTargetIds.length,
|
|
7020
7024
|
queued,
|
|
7025
|
+
approvalLevel: req.body?.approvalLevel === 'ai-assist' ? 'ai-assist' : 'task-only',
|
|
7021
7026
|
results,
|
|
7022
7027
|
error: queued > 0 ? undefined : (uniqueTargetIds.length === 0 ? 'no-target-devices' : 'no-task-queued')
|
|
7023
7028
|
});
|
|
@@ -12163,7 +12163,7 @@
|
|
|
12163
12163
|
const taskRow = document.createElement('div');
|
|
12164
12164
|
taskRow.style.cssText = `
|
|
12165
12165
|
display: grid;
|
|
12166
|
-
grid-template-columns: minmax(0, 1fr) auto;
|
|
12166
|
+
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
12167
12167
|
gap: 8px;
|
|
12168
12168
|
align-items: stretch;
|
|
12169
12169
|
flex: 0 0 auto;
|
|
@@ -12189,9 +12189,44 @@
|
|
|
12189
12189
|
outline: none;
|
|
12190
12190
|
pointer-events: auto;
|
|
12191
12191
|
`;
|
|
12192
|
+
const aiToggleLabel = document.createElement('label');
|
|
12193
|
+
aiToggleLabel.title = 'Use AI assist on agents that expose it';
|
|
12194
|
+
aiToggleLabel.style.cssText = `
|
|
12195
|
+
display: inline-flex;
|
|
12196
|
+
align-items: center;
|
|
12197
|
+
justify-content: center;
|
|
12198
|
+
gap: 6px;
|
|
12199
|
+
min-width: 54px;
|
|
12200
|
+
height: 54px;
|
|
12201
|
+
padding: 0 9px;
|
|
12202
|
+
border-radius: 7px;
|
|
12203
|
+
border: 1px solid rgba(14, 165, 233, 0.32);
|
|
12204
|
+
background: rgba(240, 249, 255, 0.88);
|
|
12205
|
+
color: #0369a1;
|
|
12206
|
+
font-size: 11px;
|
|
12207
|
+
font-weight: 900;
|
|
12208
|
+
letter-spacing: 0;
|
|
12209
|
+
cursor: pointer;
|
|
12210
|
+
pointer-events: auto;
|
|
12211
|
+
user-select: none;
|
|
12212
|
+
`;
|
|
12213
|
+
const aiToggle = document.createElement('input');
|
|
12214
|
+
aiToggle.type = 'checkbox';
|
|
12215
|
+
aiToggle.dataset.remoteFleetAiToggle = 'true';
|
|
12216
|
+
aiToggle.style.cssText = `
|
|
12217
|
+
width: 14px;
|
|
12218
|
+
height: 14px;
|
|
12219
|
+
margin: 0;
|
|
12220
|
+
accent-color: #0284c7;
|
|
12221
|
+
`;
|
|
12222
|
+
const aiToggleText = document.createElement('span');
|
|
12223
|
+
aiToggleText.textContent = 'AI';
|
|
12224
|
+
aiToggleLabel.appendChild(aiToggle);
|
|
12225
|
+
aiToggleLabel.appendChild(aiToggleText);
|
|
12192
12226
|
const sendConnectedButton = createRemoteFleetButton('Send connected', 'Dispatch task to all connected task-capable devices', 'task-connected');
|
|
12193
12227
|
sendConnectedButton.style.height = '54px';
|
|
12194
12228
|
taskRow.appendChild(taskInput);
|
|
12229
|
+
taskRow.appendChild(aiToggleLabel);
|
|
12195
12230
|
taskRow.appendChild(sendConnectedButton);
|
|
12196
12231
|
bodyView.appendChild(taskRow);
|
|
12197
12232
|
|
|
@@ -12275,8 +12310,11 @@
|
|
|
12275
12310
|
const thumbnailCapturedAt = String(device?.thumbnailCapturedAt || device?.ThumbnailCapturedAt || '');
|
|
12276
12311
|
const hasThumbnail = /^data:image\/(png|jpe?g|webp|svg\+xml);base64,/i.test(thumbnailDataUrl);
|
|
12277
12312
|
const taskEnabled = device?.computerAgentEnabled === true || device?.ComputerAgentEnabled === true;
|
|
12313
|
+
const aiAssistEnabled = device?.aiAssistEnabled === true || device?.AiAssistEnabled === true;
|
|
12314
|
+
const aiModel = String(device?.aiModel || device?.AiModel || '');
|
|
12278
12315
|
const latestTaskStatus = String(device?.latestTaskStatus || device?.LatestTaskStatus || '');
|
|
12279
12316
|
const latestTaskTitle = String(device?.latestTaskTitle || device?.LatestTaskTitle || '');
|
|
12317
|
+
const latestTaskApproval = String(device?.latestTaskApprovalLevel || device?.LatestTaskApprovalLevel || '');
|
|
12280
12318
|
const latestTaskUpdatedAt = String(device?.latestTaskUpdatedAt || device?.LatestTaskUpdatedAt || '');
|
|
12281
12319
|
const latestTaskError = String(device?.latestTaskError || device?.LatestTaskError || '');
|
|
12282
12320
|
const latestTaskResult = String(device?.latestTaskResultSummary || device?.LatestTaskResultSummary || '');
|
|
@@ -12450,7 +12488,8 @@
|
|
|
12450
12488
|
border: 1px solid ${taskTone === 'error' ? 'rgba(248, 113, 113, 0.24)' : taskTone === 'done' ? 'rgba(16, 185, 129, 0.20)' : 'rgba(37, 99, 235, 0.16)'};
|
|
12451
12489
|
`;
|
|
12452
12490
|
const taskLine = document.createElement('div');
|
|
12453
|
-
|
|
12491
|
+
const taskModeLabel = latestTaskApproval === 'ai-assist' ? 'AI' : 'Task';
|
|
12492
|
+
taskLine.textContent = `${taskModeLabel} ${latestTaskStatus || 'task'}${latestTaskUpdatedAt ? ` - ${formatRemoteFleetAge(latestTaskUpdatedAt)}` : ''}`;
|
|
12454
12493
|
taskLine.style.cssText = `
|
|
12455
12494
|
color: ${taskTone === 'error' ? '#991b1b' : taskTone === 'done' ? '#047857' : '#1d4ed8'};
|
|
12456
12495
|
font-size: 10px;
|
|
@@ -12483,7 +12522,9 @@
|
|
|
12483
12522
|
const actions = document.createElement('div');
|
|
12484
12523
|
actions.style.cssText = 'display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;';
|
|
12485
12524
|
const status = document.createElement('span');
|
|
12486
|
-
status.textContent = connectedDevice
|
|
12525
|
+
status.textContent = connectedDevice
|
|
12526
|
+
? (aiAssistEnabled ? `AI ${aiModel || 'ready'}` : 'Connected')
|
|
12527
|
+
: 'Offline';
|
|
12487
12528
|
status.style.cssText = `
|
|
12488
12529
|
min-width: 0;
|
|
12489
12530
|
color: ${connectedDevice ? '#047857' : '#64748b'};
|
|
@@ -12558,6 +12599,7 @@
|
|
|
12558
12599
|
};
|
|
12559
12600
|
|
|
12560
12601
|
const readTaskInstruction = () => String(taskInput.value || '').trim();
|
|
12602
|
+
const useAiAssist = () => aiToggle.checked === true;
|
|
12561
12603
|
|
|
12562
12604
|
sendConnectedButton.addEventListener('click', async event => {
|
|
12563
12605
|
event.preventDefault();
|
|
@@ -12572,10 +12614,11 @@
|
|
|
12572
12614
|
sendConnectedButton.disabled = true;
|
|
12573
12615
|
setTaskFeedback('Dispatching task to connected devices...');
|
|
12574
12616
|
try {
|
|
12575
|
-
const result = await invokeDotNetAsync('DispatchRemoteFleetTaskFromJs', nodeId, '', instruction);
|
|
12617
|
+
const result = await invokeDotNetAsync('DispatchRemoteFleetTaskFromJs', nodeId, '', instruction, useAiAssist());
|
|
12576
12618
|
await syncRemoteFleetNodeStateFromResult(result);
|
|
12577
12619
|
if (result?.success) {
|
|
12578
|
-
|
|
12620
|
+
const mode = useAiAssist() ? 'AI task' : 'remote task';
|
|
12621
|
+
setTaskFeedback(`Queued ${result.queued || result.total || 1} ${mode}(s).`, 'success');
|
|
12579
12622
|
} else {
|
|
12580
12623
|
setTaskFeedback(result?.error || 'Task dispatch failed.', 'error');
|
|
12581
12624
|
}
|
|
@@ -12618,10 +12661,10 @@
|
|
|
12618
12661
|
button.disabled = true;
|
|
12619
12662
|
setTaskFeedback('Dispatching task to device...');
|
|
12620
12663
|
try {
|
|
12621
|
-
const result = await invokeDotNetAsync('DispatchRemoteFleetTaskFromJs', nodeId, button.dataset.deviceId || '', instruction);
|
|
12664
|
+
const result = await invokeDotNetAsync('DispatchRemoteFleetTaskFromJs', nodeId, button.dataset.deviceId || '', instruction, useAiAssist());
|
|
12622
12665
|
await syncRemoteFleetNodeStateFromResult(result);
|
|
12623
12666
|
if (result?.success) {
|
|
12624
|
-
setTaskFeedback('Queued remote task.', 'success');
|
|
12667
|
+
setTaskFeedback(useAiAssist() ? 'Queued AI task.' : 'Queued remote task.', 'success');
|
|
12625
12668
|
} else {
|
|
12626
12669
|
setTaskFeedback(result?.error || 'Task dispatch failed.', 'error');
|
|
12627
12670
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mainAssemblyName": "MindExecution.Web",
|
|
3
3
|
"resources": {
|
|
4
|
-
"hash": "sha256-
|
|
4
|
+
"hash": "sha256-pNivN7EJaBIokgTOUsXUgk3uMPTdJMPxWR5WEc3XWNk=",
|
|
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.m05i39uvk9.dll": "System.dll",
|
|
124
124
|
"netstandard.0xet7jg7ky.dll": "netstandard.dll",
|
|
125
125
|
"System.Private.CoreLib.rkafq04oma.dll": "System.Private.CoreLib.dll",
|
|
126
|
-
"MindExecution.Core.
|
|
127
|
-
"MindExecution.Kernel.
|
|
128
|
-
"MindExecution.Plugins.Admin.
|
|
129
|
-
"MindExecution.Plugins.Business.
|
|
130
|
-
"MindExecution.Plugins.Concept.
|
|
131
|
-
"MindExecution.Plugins.Directory.
|
|
132
|
-
"MindExecution.Plugins.PlanMaster.
|
|
133
|
-
"MindExecution.Plugins.YouTube.
|
|
134
|
-
"MindExecution.Shared.
|
|
135
|
-
"MindExecution.Web.
|
|
126
|
+
"MindExecution.Core.27f2blpou6.dll": "MindExecution.Core.dll",
|
|
127
|
+
"MindExecution.Kernel.9wfplilp5l.dll": "MindExecution.Kernel.dll",
|
|
128
|
+
"MindExecution.Plugins.Admin.sb1vkmct0w.dll": "MindExecution.Plugins.Admin.dll",
|
|
129
|
+
"MindExecution.Plugins.Business.zr7rkofx44.dll": "MindExecution.Plugins.Business.dll",
|
|
130
|
+
"MindExecution.Plugins.Concept.g6wd36v92i.dll": "MindExecution.Plugins.Concept.dll",
|
|
131
|
+
"MindExecution.Plugins.Directory.bb5flwt0u7.dll": "MindExecution.Plugins.Directory.dll",
|
|
132
|
+
"MindExecution.Plugins.PlanMaster.me8v9fpgwc.dll": "MindExecution.Plugins.PlanMaster.dll",
|
|
133
|
+
"MindExecution.Plugins.YouTube.l811fqx9e0.dll": "MindExecution.Plugins.YouTube.dll",
|
|
134
|
+
"MindExecution.Shared.oseamdg577.dll": "MindExecution.Shared.dll",
|
|
135
|
+
"MindExecution.Web.96r3nnp9is.dll": "MindExecution.Web.dll",
|
|
136
136
|
"dotnet.js": "dotnet.js",
|
|
137
137
|
"dotnet.native.xsn1d6x2kd.js": "dotnet.native.js",
|
|
138
138
|
"dotnet.native.vz0adxojrz.wasm": "dotnet.native.wasm",
|
|
@@ -278,18 +278,18 @@
|
|
|
278
278
|
"System.Xml.XDocument.c539ki6cuq.dll": "sha256-MPTRJkptrL9nGa2tl4kF46+wErNUYRPCGblX3ANoKoY=",
|
|
279
279
|
"System.m05i39uvk9.dll": "sha256-5jDfIdbYAigw7/Q/lMzt5W/+cayGbW9ko9FvuaN1GsQ=",
|
|
280
280
|
"netstandard.0xet7jg7ky.dll": "sha256-xENDv620uJ8fHwLJ2bdhrTHz4QPjvqXOztnk2a4wr0c=",
|
|
281
|
-
"MindExecution.Core.
|
|
282
|
-
"MindExecution.Kernel.
|
|
283
|
-
"MindExecution.Plugins.Concept.
|
|
284
|
-
"MindExecution.Plugins.PlanMaster.
|
|
285
|
-
"MindExecution.Shared.
|
|
286
|
-
"MindExecution.Web.
|
|
281
|
+
"MindExecution.Core.27f2blpou6.dll": "sha256-bqjP4oZY0UUVrmz+2Ctlf51S2Uo5Y/AKoPqoHy4pOnw=",
|
|
282
|
+
"MindExecution.Kernel.9wfplilp5l.dll": "sha256-uWkVGORohTBq4U8aic2oWXUFy9SnLejWJO5jA4AYUv4=",
|
|
283
|
+
"MindExecution.Plugins.Concept.g6wd36v92i.dll": "sha256-2DAMmcKQQlL5nDSjz2wZpO3rsJZCKV47BD19znoecJc=",
|
|
284
|
+
"MindExecution.Plugins.PlanMaster.me8v9fpgwc.dll": "sha256-ThFpjeyaMI19u6kLpApau9CFMDFKu0qAXvW45raEf4A=",
|
|
285
|
+
"MindExecution.Shared.oseamdg577.dll": "sha256-aNNAxyXR5QAJc8/7NHb0SkPoCV/ZfKxUpI1EutwVPoU=",
|
|
286
|
+
"MindExecution.Web.96r3nnp9is.dll": "sha256-Ua8v/da0JRYdWnLlYTo7RN8X+fLqj0Fx2ep9gtN0GS4="
|
|
287
287
|
},
|
|
288
288
|
"lazyAssembly": {
|
|
289
|
-
"MindExecution.Plugins.Admin.
|
|
290
|
-
"MindExecution.Plugins.Business.
|
|
291
|
-
"MindExecution.Plugins.Directory.
|
|
292
|
-
"MindExecution.Plugins.YouTube.
|
|
289
|
+
"MindExecution.Plugins.Admin.sb1vkmct0w.dll": "sha256-iDuN0GDy4cf1SBO0F9oNo6GO3m98b3TfcSaQWtQK5q8=",
|
|
290
|
+
"MindExecution.Plugins.Business.zr7rkofx44.dll": "sha256-H4Q/ZDzQZhQkspAue90LyhKxSx6KmvoqYZrQYavlsN4=",
|
|
291
|
+
"MindExecution.Plugins.Directory.bb5flwt0u7.dll": "sha256-WbJHd3y3nymvVCvYGNYYw7/ywI8NraYmG8Y2IFch1u8=",
|
|
292
|
+
"MindExecution.Plugins.YouTube.l811fqx9e0.dll": "sha256-e9zKVUmEONig5ScJXvPEPBQf+MAVyfEqyCTncHnO8Y0="
|
|
293
293
|
}
|
|
294
294
|
},
|
|
295
295
|
"cacheBootResources": true,
|
package/wwwroot/index.html
CHANGED
|
@@ -558,7 +558,7 @@
|
|
|
558
558
|
}
|
|
559
559
|
|
|
560
560
|
const base = '_content/MindExecution.Shared/js/';
|
|
561
|
-
const scriptVersion = '20260612-remote-
|
|
561
|
+
const scriptVersion = '20260612-remote-ai-v465';
|
|
562
562
|
const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
|
|
563
563
|
console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
|
|
564
564
|
const criticalScripts = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
self.assetsManifest = {
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "wLEvF+gp",
|
|
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-
|
|
89
|
+
"hash": "sha256-hBSas6gvVUMu0hBpxyG+W6xv8+NN7JcjiSq0+C6ZjGU=",
|
|
90
90
|
"url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
@@ -410,44 +410,44 @@
|
|
|
410
410
|
"url": "_framework/MimeMapping.og9ys58ylm.dll"
|
|
411
411
|
},
|
|
412
412
|
{
|
|
413
|
-
"hash": "sha256-
|
|
414
|
-
"url": "_framework/MindExecution.Core.
|
|
413
|
+
"hash": "sha256-bqjP4oZY0UUVrmz+2Ctlf51S2Uo5Y/AKoPqoHy4pOnw=",
|
|
414
|
+
"url": "_framework/MindExecution.Core.27f2blpou6.dll"
|
|
415
415
|
},
|
|
416
416
|
{
|
|
417
|
-
"hash": "sha256-
|
|
418
|
-
"url": "_framework/MindExecution.Kernel.
|
|
417
|
+
"hash": "sha256-uWkVGORohTBq4U8aic2oWXUFy9SnLejWJO5jA4AYUv4=",
|
|
418
|
+
"url": "_framework/MindExecution.Kernel.9wfplilp5l.dll"
|
|
419
419
|
},
|
|
420
420
|
{
|
|
421
|
-
"hash": "sha256-
|
|
422
|
-
"url": "_framework/MindExecution.Plugins.Admin.
|
|
421
|
+
"hash": "sha256-iDuN0GDy4cf1SBO0F9oNo6GO3m98b3TfcSaQWtQK5q8=",
|
|
422
|
+
"url": "_framework/MindExecution.Plugins.Admin.sb1vkmct0w.dll"
|
|
423
423
|
},
|
|
424
424
|
{
|
|
425
|
-
"hash": "sha256-
|
|
426
|
-
"url": "_framework/MindExecution.Plugins.Business.
|
|
425
|
+
"hash": "sha256-H4Q/ZDzQZhQkspAue90LyhKxSx6KmvoqYZrQYavlsN4=",
|
|
426
|
+
"url": "_framework/MindExecution.Plugins.Business.zr7rkofx44.dll"
|
|
427
427
|
},
|
|
428
428
|
{
|
|
429
|
-
"hash": "sha256-
|
|
430
|
-
"url": "_framework/MindExecution.Plugins.Concept.
|
|
429
|
+
"hash": "sha256-2DAMmcKQQlL5nDSjz2wZpO3rsJZCKV47BD19znoecJc=",
|
|
430
|
+
"url": "_framework/MindExecution.Plugins.Concept.g6wd36v92i.dll"
|
|
431
431
|
},
|
|
432
432
|
{
|
|
433
|
-
"hash": "sha256-
|
|
434
|
-
"url": "_framework/MindExecution.Plugins.Directory.
|
|
433
|
+
"hash": "sha256-WbJHd3y3nymvVCvYGNYYw7/ywI8NraYmG8Y2IFch1u8=",
|
|
434
|
+
"url": "_framework/MindExecution.Plugins.Directory.bb5flwt0u7.dll"
|
|
435
435
|
},
|
|
436
436
|
{
|
|
437
|
-
"hash": "sha256-
|
|
438
|
-
"url": "_framework/MindExecution.Plugins.PlanMaster.
|
|
437
|
+
"hash": "sha256-ThFpjeyaMI19u6kLpApau9CFMDFKu0qAXvW45raEf4A=",
|
|
438
|
+
"url": "_framework/MindExecution.Plugins.PlanMaster.me8v9fpgwc.dll"
|
|
439
439
|
},
|
|
440
440
|
{
|
|
441
|
-
"hash": "sha256-
|
|
442
|
-
"url": "_framework/MindExecution.Plugins.YouTube.
|
|
441
|
+
"hash": "sha256-e9zKVUmEONig5ScJXvPEPBQf+MAVyfEqyCTncHnO8Y0=",
|
|
442
|
+
"url": "_framework/MindExecution.Plugins.YouTube.l811fqx9e0.dll"
|
|
443
443
|
},
|
|
444
444
|
{
|
|
445
|
-
"hash": "sha256-
|
|
446
|
-
"url": "_framework/MindExecution.Shared.
|
|
445
|
+
"hash": "sha256-aNNAxyXR5QAJc8/7NHb0SkPoCV/ZfKxUpI1EutwVPoU=",
|
|
446
|
+
"url": "_framework/MindExecution.Shared.oseamdg577.dll"
|
|
447
447
|
},
|
|
448
448
|
{
|
|
449
|
-
"hash": "sha256-
|
|
450
|
-
"url": "_framework/MindExecution.Web.
|
|
449
|
+
"hash": "sha256-Ua8v/da0JRYdWnLlYTo7RN8X+fLqj0Fx2ep9gtN0GS4=",
|
|
450
|
+
"url": "_framework/MindExecution.Web.96r3nnp9is.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-
|
|
773
|
+
"hash": "sha256-kTyP4Fsv/AOm0/MqoZ+M1/9yt5ZgNrXfJE8PEsMaTqQ=",
|
|
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-
|
|
837
|
+
"hash": "sha256-Cf/mSFH1jP/r7yYXdv2Fyy4jqSjg5ouxZIKPgeRRLQI=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|
|
Binary file
|
|
Binary file
|