@mindexec/cli 0.2.466 → 0.2.468
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 +2 -0
- package/codex-runtime.js +35 -34
- package/package.json +5 -3
- package/remote-fast/osx-arm64/mindexec-remote-fast.dll +0 -0
- package/remote-fast/osx-x64/mindexec-remote-fast.dll +0 -0
- package/remote-fast/win-x64/mindexec-remote-fast.dll +0 -0
- package/scripts/codex-runtime-home-smoke.mjs +58 -0
- package/scripts/codex-sdk-image-live-smoke.mjs +43 -0
- package/scripts/codex-sdk-image-runtime-smoke.mjs +1 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +39 -11
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +3 -3
- package/wwwroot/_framework/{MindExecution.Core.psrddqi3mi.dll → MindExecution.Core.yrfbp4404m.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Kernel.emus4f6jja.dll → MindExecution.Kernel.qpodwwdiwx.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Admin.q3gz9b4wp8.dll → MindExecution.Plugins.Admin.8uzx32oujb.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Business.dr4m9mbnc5.dll → MindExecution.Plugins.Business.tx05qckwdp.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Concept.xzrzi61p7e.dll → MindExecution.Plugins.Concept.m3ew6te59x.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Directory.hcbtf3n8w7.dll → MindExecution.Plugins.Directory.9qioesdf9k.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.1w09epz56f.dll → MindExecution.Plugins.PlanMaster.74t0l3lj50.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.YouTube.7vjbulgfo8.dll → MindExecution.Plugins.YouTube.rw3h96cxzb.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Shared.zj2n1axexl.dll → MindExecution.Shared.ubxwcs5koc.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Web.z1np8j1qu6.dll → MindExecution.Web.mvn80sbzgp.dll} +0 -0
- package/wwwroot/_framework/blazor.boot.json +21 -21
- package/wwwroot/index.html +1 -1
- package/wwwroot/service-worker-assets.js +25 -25
- package/wwwroot/service-worker.js +1 -1
package/README.md
CHANGED
|
@@ -274,6 +274,8 @@ Shell/Codex job ?대깽??
|
|
|
274
274
|
|
|
275
275
|
The TypeScript SDK runs only inside LocalBridge. Browser/WASM clients should call these bridge endpoints and must not import or execute Codex SDK packages directly.
|
|
276
276
|
|
|
277
|
+
By default, LocalBridge reuses the active `CODEX_HOME` (or the standard `~/.codex` home) so SDK calls share the existing Codex login. Set `MINDEXEC_CODEX_HOME` only when a deliberately separate MindExec login is required.
|
|
278
|
+
|
|
277
279
|
### Port ownership
|
|
278
280
|
|
|
279
281
|
On startup, LocalBridge checks `BRIDGE_PORT` and stops an existing MindExec/LocalBridge listener on that same port before binding. If the port is owned by an unrelated process, startup fails with a clear message instead of silently killing it. Set `BRIDGE_FORCE_KILL_PORT_OWNER=1` only when the launcher owns that port policy and should terminate any listener.
|
package/codex-runtime.js
CHANGED
|
@@ -41,11 +41,8 @@ const MAX_IMAGE_REFERENCE_COUNT = 8;
|
|
|
41
41
|
const MAX_IMAGE_REFERENCE_BYTES = 40 * 1024 * 1024;
|
|
42
42
|
const MAX_GENERATED_IMAGE_BYTES = 50 * 1024 * 1024;
|
|
43
43
|
const TEMP_DIR = '.ai/codex';
|
|
44
|
-
const CODEX_SOURCE_HOME = path.join(os.homedir(), '.codex');
|
|
45
44
|
const CODEX_RUNTIME_HOME_ENV = 'MINDEXEC_CODEX_HOME';
|
|
46
|
-
const DEFAULT_CODEX_RUNTIME_HOME = path.join(os.homedir(), '.mindexec', 'codex-runtime');
|
|
47
45
|
const CODEX_RUNTIME_CONFIG_MARKER = '# Generated by MindExec LocalBridge for isolated AI node runs.';
|
|
48
|
-
const CODEX_RUNTIME_AUTH_FILES = ['auth.json'];
|
|
49
46
|
const CODEX_TARGET_BY_PLATFORM = Object.freeze({
|
|
50
47
|
'win32:x64': {
|
|
51
48
|
packageName: '@openai/codex-win32-x64',
|
|
@@ -130,40 +127,35 @@ function normalizeProviderKind(value) {
|
|
|
130
127
|
return '';
|
|
131
128
|
}
|
|
132
129
|
|
|
133
|
-
function
|
|
134
|
-
const configured = String(process.env
|
|
135
|
-
return path.resolve(configured ||
|
|
130
|
+
function resolveUserCodexHome() {
|
|
131
|
+
const configured = String(process.env.CODEX_HOME || '').trim();
|
|
132
|
+
return path.resolve(configured || path.join(os.homedir(), '.codex'));
|
|
136
133
|
}
|
|
137
134
|
|
|
138
|
-
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
const targetStat = await fs.stat(target).catch(() => null);
|
|
143
|
-
if (targetStat?.isFile()) {
|
|
144
|
-
return false;
|
|
145
|
-
}
|
|
135
|
+
export function resolveCodexRuntimeHome() {
|
|
136
|
+
const configured = String(process.env[CODEX_RUNTIME_HOME_ENV] || '').trim();
|
|
137
|
+
return path.resolve(configured || resolveUserCodexHome());
|
|
138
|
+
}
|
|
146
139
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
140
|
+
function usesExplicitIsolatedCodexHome() {
|
|
141
|
+
return String(process.env[CODEX_RUNTIME_HOME_ENV] || '').trim().length > 0;
|
|
142
|
+
}
|
|
151
143
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}
|
|
144
|
+
function buildCodexSdkConfigOverrides(additional = {}) {
|
|
145
|
+
return {
|
|
146
|
+
mcp_servers: {},
|
|
147
|
+
...additional
|
|
148
|
+
};
|
|
157
149
|
}
|
|
158
150
|
|
|
159
|
-
async function ensureCodexRuntimeHome() {
|
|
151
|
+
export async function ensureCodexRuntimeHome() {
|
|
160
152
|
const runtimeHome = resolveCodexRuntimeHome();
|
|
161
153
|
await fs.mkdir(runtimeHome, { recursive: true });
|
|
162
154
|
await fs.mkdir(path.join(runtimeHome, 'sessions'), { recursive: true });
|
|
163
155
|
await fs.mkdir(path.join(runtimeHome, 'generated_images'), { recursive: true });
|
|
164
156
|
|
|
165
|
-
|
|
166
|
-
|
|
157
|
+
if (!usesExplicitIsolatedCodexHome()) {
|
|
158
|
+
return runtimeHome;
|
|
167
159
|
}
|
|
168
160
|
|
|
169
161
|
const configPath = path.join(runtimeHome, 'config.toml');
|
|
@@ -186,7 +178,7 @@ async function ensureCodexRuntimeHome() {
|
|
|
186
178
|
return runtimeHome;
|
|
187
179
|
}
|
|
188
180
|
|
|
189
|
-
function buildCodexChildEnv() {
|
|
181
|
+
export function buildCodexChildEnv() {
|
|
190
182
|
const env = {};
|
|
191
183
|
for (const [key, value] of Object.entries(process.env)) {
|
|
192
184
|
if (value !== undefined) {
|
|
@@ -195,7 +187,11 @@ function buildCodexChildEnv() {
|
|
|
195
187
|
}
|
|
196
188
|
|
|
197
189
|
env.CODEX_HOME = resolveCodexRuntimeHome();
|
|
198
|
-
|
|
190
|
+
if (usesExplicitIsolatedCodexHome()) {
|
|
191
|
+
env.MINDEXEC_CODEX_ISOLATED_HOME = '1';
|
|
192
|
+
} else {
|
|
193
|
+
delete env.MINDEXEC_CODEX_ISOLATED_HOME;
|
|
194
|
+
}
|
|
199
195
|
return env;
|
|
200
196
|
}
|
|
201
197
|
|
|
@@ -1011,7 +1007,8 @@ export function createCodexRuntime(options) {
|
|
|
1011
1007
|
const sdk = await sdkLoader();
|
|
1012
1008
|
await prepareRuntimeHome();
|
|
1013
1009
|
const codex = new sdk.Codex({
|
|
1014
|
-
env: childEnvFactory()
|
|
1010
|
+
env: childEnvFactory(),
|
|
1011
|
+
config: buildCodexSdkConfigOverrides()
|
|
1015
1012
|
});
|
|
1016
1013
|
const thread = codex.startThread(threadOptions);
|
|
1017
1014
|
const localThreadId = `local_${crypto.randomUUID()}`;
|
|
@@ -1076,7 +1073,8 @@ export function createCodexRuntime(options) {
|
|
|
1076
1073
|
const sdk = await sdkLoader();
|
|
1077
1074
|
await prepareRuntimeHome();
|
|
1078
1075
|
const codex = new sdk.Codex({
|
|
1079
|
-
env: childEnvFactory()
|
|
1076
|
+
env: childEnvFactory(),
|
|
1077
|
+
config: buildCodexSdkConfigOverrides()
|
|
1080
1078
|
});
|
|
1081
1079
|
const officialId = requestedThreadId && !requestedThreadId.startsWith('local_')
|
|
1082
1080
|
? requestedThreadId
|
|
@@ -1231,7 +1229,9 @@ export function createCodexRuntime(options) {
|
|
|
1231
1229
|
'-s',
|
|
1232
1230
|
threadOptions.sandboxMode,
|
|
1233
1231
|
'--config',
|
|
1234
|
-
`model_reasoning_effort=${threadOptions.modelReasoningEffort}
|
|
1232
|
+
`model_reasoning_effort=${threadOptions.modelReasoningEffort}`,
|
|
1233
|
+
'--config',
|
|
1234
|
+
'mcp_servers={}'
|
|
1235
1235
|
];
|
|
1236
1236
|
if (threadOptions.model) {
|
|
1237
1237
|
args.push('-m', threadOptions.model);
|
|
@@ -1397,9 +1397,9 @@ export function createCodexRuntime(options) {
|
|
|
1397
1397
|
try {
|
|
1398
1398
|
const codex = new sdk.Codex({
|
|
1399
1399
|
env: childEnvFactory(),
|
|
1400
|
-
config: {
|
|
1400
|
+
config: buildCodexSdkConfigOverrides({
|
|
1401
1401
|
features: { image_generation: true }
|
|
1402
|
-
}
|
|
1402
|
+
})
|
|
1403
1403
|
});
|
|
1404
1404
|
const thread = codex.startThread(threadOptions);
|
|
1405
1405
|
const input = [
|
|
@@ -1508,7 +1508,8 @@ export function createCodexRuntime(options) {
|
|
|
1508
1508
|
const sdk = await sdkLoader();
|
|
1509
1509
|
await prepareRuntimeHome();
|
|
1510
1510
|
const codex = new sdk.Codex({
|
|
1511
|
-
env: childEnvFactory()
|
|
1511
|
+
env: childEnvFactory(),
|
|
1512
|
+
config: buildCodexSdkConfigOverrides()
|
|
1512
1513
|
});
|
|
1513
1514
|
const thread = codex.resumeThread(threadId, threadOptions);
|
|
1514
1515
|
threads.set(threadId, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mindexec/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.468",
|
|
4
4
|
"description": "MindExec local runtime and bridge CLI",
|
|
5
5
|
"main": "server.js",
|
|
6
6
|
"type": "module",
|
|
@@ -36,10 +36,12 @@
|
|
|
36
36
|
"test:desktop:update": "node --test electron/update-manager-smoke.mjs electron/recurring-update-owner-smoke.mjs scripts/desktop-update-worker-smoke.mjs scripts/desktop-update-publisher-smoke.mjs",
|
|
37
37
|
"test:desktop": "node electron/source-smoke.mjs && node scripts/desktop-workspace-state-smoke.mjs && npm run test:desktop:update",
|
|
38
38
|
"test:desktop:win": "node electron/windows-package-smoke.mjs",
|
|
39
|
-
"test:syntax": "node --check server.js && node --check remote-hub.js && node --check lzo1x.js && node --check mode4-atlas.js && node --check mode4-atlas-worker.js && node --check codex-runtime.js && node --check codex-model-catalog.js && node --check launch-bridge.cjs && node --check port-guard.cjs && node --check desktop-workspace-state.cjs && node --check electron/main.cjs && node --check electron/preload.cjs && node --check electron/update-manager.cjs && node --check electron/update-feed-resolver.cjs && node --check electron/recurring-update-owner.cjs && node --check electron/source-smoke.mjs && node --check electron/windows-package-smoke.mjs && node --check electron/update-manager-smoke.mjs && node --check electron/recurring-update-owner-smoke.mjs && node --check scripts/desktop-workspace-state-smoke.mjs && node --check scripts/desktop-update-worker-smoke.mjs && node --check scripts/desktop-update-publisher-smoke.mjs && node --check scripts/board-render-ownership-smoke.mjs && node --check ../workers/mindexec-desktop-updates/src/index.mjs && node --check scripts/setup-tree-sitter-grammars.mjs && node --check scripts/npm-fresh-install-smoke.mjs && node --check scripts/auth-session-smoke.mjs && node --check scripts/codex-model-catalog-smoke.mjs && node --check scripts/codex-sdk-runtime-smoke.mjs && node --check scripts/codex-sdk-image-runtime-smoke.mjs && node --check scripts/remote-hub-smoke.mjs && node --check scripts/remote-hub-scale-smoke.mjs && node --check scripts/remote-fleet-render-smoke.mjs && node --check scripts/remote-http-smoke.mjs && node --check scripts/remote-frame-ws-smoke.mjs && node --check scripts/remote-input-ws-smoke.mjs && node --check scripts/remote-agent-ws-smoke.mjs && node --check scripts/remote-agent-managed-smoke.mjs && node --check scripts/remote-registry-follower-smoke.mjs && node --check scripts/remote-agent-package-smoke.mjs && node --check scripts/remote-fast-live-rate-smoke.mjs && node --check scripts/remote-fast-mdm-browser-smoke.mjs",
|
|
40
|
-
"test:canvas:board-owner": "node scripts/board-render-ownership-smoke.mjs",
|
|
39
|
+
"test:syntax": "node --check server.js && node --check remote-hub.js && node --check lzo1x.js && node --check mode4-atlas.js && node --check mode4-atlas-worker.js && node --check codex-runtime.js && node --check codex-model-catalog.js && node --check launch-bridge.cjs && node --check port-guard.cjs && node --check desktop-workspace-state.cjs && node --check electron/main.cjs && node --check electron/preload.cjs && node --check electron/update-manager.cjs && node --check electron/update-feed-resolver.cjs && node --check electron/recurring-update-owner.cjs && node --check electron/source-smoke.mjs && node --check electron/windows-package-smoke.mjs && node --check electron/update-manager-smoke.mjs && node --check electron/recurring-update-owner-smoke.mjs && node --check scripts/desktop-workspace-state-smoke.mjs && node --check scripts/desktop-update-worker-smoke.mjs && node --check scripts/desktop-update-publisher-smoke.mjs && node --check scripts/board-render-ownership-smoke.mjs && node --check ../workers/mindexec-desktop-updates/src/index.mjs && node --check scripts/setup-tree-sitter-grammars.mjs && node --check scripts/npm-fresh-install-smoke.mjs && node --check scripts/auth-session-smoke.mjs && node --check scripts/codex-model-catalog-smoke.mjs && node --check scripts/codex-sdk-runtime-smoke.mjs && node --check scripts/codex-sdk-image-runtime-smoke.mjs && node --check scripts/codex-sdk-image-live-smoke.mjs && node --check scripts/codex-runtime-home-smoke.mjs && node --check scripts/remote-hub-smoke.mjs && node --check scripts/remote-hub-scale-smoke.mjs && node --check scripts/remote-fleet-render-smoke.mjs && node --check scripts/remote-http-smoke.mjs && node --check scripts/remote-frame-ws-smoke.mjs && node --check scripts/remote-input-ws-smoke.mjs && node --check scripts/remote-agent-ws-smoke.mjs && node --check scripts/remote-agent-managed-smoke.mjs && node --check scripts/remote-registry-follower-smoke.mjs && node --check scripts/remote-agent-package-smoke.mjs && node --check scripts/remote-fast-live-rate-smoke.mjs && node --check scripts/remote-fast-mdm-browser-smoke.mjs",
|
|
40
|
+
"test:canvas:board-owner": "node scripts/board-render-ownership-smoke.mjs",
|
|
41
41
|
"test:codex-sdk": "node scripts/codex-sdk-runtime-smoke.mjs",
|
|
42
42
|
"test:codex-sdk:image": "node scripts/codex-sdk-image-runtime-smoke.mjs",
|
|
43
|
+
"test:codex-sdk:image:live": "node scripts/codex-sdk-image-live-smoke.mjs --live",
|
|
44
|
+
"test:codex-sdk:home": "node scripts/codex-runtime-home-smoke.mjs",
|
|
43
45
|
"test:codex-sdk:live": "node scripts/codex-sdk-runtime-smoke.mjs --live",
|
|
44
46
|
"test:codex-sdk:live-tools": "node scripts/codex-sdk-runtime-smoke.mjs --live-tools",
|
|
45
47
|
"test:codex-model-catalog": "node scripts/codex-model-catalog-smoke.mjs",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { promises as fs } from 'node:fs';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import {
|
|
6
|
+
buildCodexChildEnv,
|
|
7
|
+
ensureCodexRuntimeHome,
|
|
8
|
+
resolveCodexRuntimeHome
|
|
9
|
+
} from '../codex-runtime.js';
|
|
10
|
+
|
|
11
|
+
const previousCodexHome = process.env.CODEX_HOME;
|
|
12
|
+
const previousMindExecCodexHome = process.env.MINDEXEC_CODEX_HOME;
|
|
13
|
+
const sharedHome = await fs.mkdtemp(path.join(os.tmpdir(), 'mindexec-codex-shared-home-'));
|
|
14
|
+
const isolatedHome = await fs.mkdtemp(path.join(os.tmpdir(), 'mindexec-codex-isolated-home-'));
|
|
15
|
+
|
|
16
|
+
try {
|
|
17
|
+
process.env.CODEX_HOME = sharedHome;
|
|
18
|
+
delete process.env.MINDEXEC_CODEX_HOME;
|
|
19
|
+
|
|
20
|
+
assert.equal(resolveCodexRuntimeHome(), path.resolve(sharedHome));
|
|
21
|
+
assert.equal(await ensureCodexRuntimeHome(), path.resolve(sharedHome));
|
|
22
|
+
assert.equal(await fs.stat(path.join(sharedHome, 'sessions')).then(() => true), true);
|
|
23
|
+
assert.equal(await fs.stat(path.join(sharedHome, 'generated_images')).then(() => true), true);
|
|
24
|
+
assert.equal(await fs.stat(path.join(sharedHome, 'config.toml')).then(() => true).catch(() => false), false);
|
|
25
|
+
|
|
26
|
+
const sharedEnv = buildCodexChildEnv();
|
|
27
|
+
assert.equal(sharedEnv.CODEX_HOME, path.resolve(sharedHome));
|
|
28
|
+
assert.equal(sharedEnv.MINDEXEC_CODEX_ISOLATED_HOME, undefined);
|
|
29
|
+
|
|
30
|
+
process.env.MINDEXEC_CODEX_HOME = isolatedHome;
|
|
31
|
+
assert.equal(resolveCodexRuntimeHome(), path.resolve(isolatedHome));
|
|
32
|
+
assert.equal(await ensureCodexRuntimeHome(), path.resolve(isolatedHome));
|
|
33
|
+
const isolatedConfig = await fs.readFile(path.join(isolatedHome, 'config.toml'), 'utf8');
|
|
34
|
+
assert.match(isolatedConfig, /Generated by MindExec LocalBridge for isolated AI node runs/);
|
|
35
|
+
|
|
36
|
+
const isolatedEnv = buildCodexChildEnv();
|
|
37
|
+
assert.equal(isolatedEnv.CODEX_HOME, path.resolve(isolatedHome));
|
|
38
|
+
assert.equal(isolatedEnv.MINDEXEC_CODEX_ISOLATED_HOME, '1');
|
|
39
|
+
|
|
40
|
+
console.log(JSON.stringify({
|
|
41
|
+
ok: true,
|
|
42
|
+
sharedCodexLoginHome: true,
|
|
43
|
+
explicitIsolationOnly: true
|
|
44
|
+
}));
|
|
45
|
+
} finally {
|
|
46
|
+
if (previousCodexHome === undefined) {
|
|
47
|
+
delete process.env.CODEX_HOME;
|
|
48
|
+
} else {
|
|
49
|
+
process.env.CODEX_HOME = previousCodexHome;
|
|
50
|
+
}
|
|
51
|
+
if (previousMindExecCodexHome === undefined) {
|
|
52
|
+
delete process.env.MINDEXEC_CODEX_HOME;
|
|
53
|
+
} else {
|
|
54
|
+
process.env.MINDEXEC_CODEX_HOME = previousMindExecCodexHome;
|
|
55
|
+
}
|
|
56
|
+
await fs.rm(sharedHome, { recursive: true, force: true });
|
|
57
|
+
await fs.rm(isolatedHome, { recursive: true, force: true });
|
|
58
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { createCodexRuntime, resolveCodexRuntimeHome } from '../codex-runtime.js';
|
|
5
|
+
|
|
6
|
+
if (!process.argv.includes('--live')) {
|
|
7
|
+
console.log(JSON.stringify({ ok: true, liveImage: false }));
|
|
8
|
+
process.exit(0);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const scriptDir = path.dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
const packageRoot = path.resolve(scriptDir, '..');
|
|
13
|
+
const workspaceRoot = path.resolve(packageRoot, '..');
|
|
14
|
+
const runtime = createCodexRuntime({
|
|
15
|
+
packageRoot,
|
|
16
|
+
resolveWorkingDirectory: async () => workspaceRoot,
|
|
17
|
+
getCurrentRuntime: () => ({}),
|
|
18
|
+
getModelCatalog: async () => ({ models: [], source: 'live-smoke', updatedAt: new Date().toISOString() }),
|
|
19
|
+
log: () => {}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const result = await runtime.runImage({
|
|
23
|
+
prompt: 'Create a clean square test image with one solid blue circle centered on a white background. No text.',
|
|
24
|
+
size: '1024x1024',
|
|
25
|
+
quality: 'low'
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
assert.equal(result.success, true, result.error);
|
|
29
|
+
assert.equal(result.providerKind, 'TypeScriptSdk');
|
|
30
|
+
assert.equal(result.authenticationRequired, false);
|
|
31
|
+
assert.equal(result.loginOpened, false, 'The existing Codex login should be reused without opening sign-in.');
|
|
32
|
+
assert.ok(result.imageBase64.length > 1000, 'The live SDK image result was unexpectedly small.');
|
|
33
|
+
assert.match(result.mimeType, /^image\//);
|
|
34
|
+
|
|
35
|
+
console.log(JSON.stringify({
|
|
36
|
+
ok: true,
|
|
37
|
+
liveImage: true,
|
|
38
|
+
providerKind: result.providerKind,
|
|
39
|
+
sharedCodexHome: resolveCodexRuntimeHome(),
|
|
40
|
+
loginOpened: result.loginOpened,
|
|
41
|
+
mimeType: result.mimeType,
|
|
42
|
+
imageBytesApprox: Math.floor(result.imageBase64.length * 0.75)
|
|
43
|
+
}));
|
|
@@ -80,6 +80,7 @@ try {
|
|
|
80
80
|
assert.equal(generated.imageBase64, tinyPngBase64);
|
|
81
81
|
assert.equal(generated.mimeType, 'image/png');
|
|
82
82
|
assert.equal(captures.codexOptions[0].config.features.image_generation, true);
|
|
83
|
+
assert.deepEqual(captures.codexOptions[0].config.mcp_servers, {});
|
|
83
84
|
assert.equal(captures.threadOptions[0].sandboxMode, 'read-only');
|
|
84
85
|
assert.equal(captures.inputs[0][0].type, 'text');
|
|
85
86
|
assert.equal(captures.inputs[0][1].type, 'local_image');
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
const DEBUG = false;
|
|
6
6
|
const FPS_DEBUG = false;
|
|
7
7
|
const FRAME_PERF_DEBUG = false;
|
|
8
|
-
const MINDMAP_CORE_BUILD_ID = '
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260819-grid-zoom-density-sync-v868';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -112,6 +112,8 @@
|
|
|
112
112
|
const LOCAL_SNAP_GRID_SOLID_RADIUS_PX = LOCAL_SNAP_GRID_RADIUS_PX - LOCAL_SNAP_GRID_FADE_PX;
|
|
113
113
|
const LOCAL_SNAP_GRID_RASTER_MIN_STEP_PX = 0.5;
|
|
114
114
|
const LOCAL_SNAP_GRID_RASTER_MAX_PERIOD_PX = 2048;
|
|
115
|
+
const LOCAL_SNAP_GRID_MINOR_DETAIL_FADE_START_PX = 1.25;
|
|
116
|
+
const LOCAL_SNAP_GRID_MINOR_DETAIL_FADE_END_PX = 2.25;
|
|
115
117
|
const LOCAL_SNAP_GRID_DEFAULT_STEP_PX = 10;
|
|
116
118
|
const LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX = 100;
|
|
117
119
|
const LOCAL_SNAP_GRID_DEFAULT_OPACITY = 0.58;
|
|
@@ -3693,6 +3695,18 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3693
3695
|
};
|
|
3694
3696
|
}
|
|
3695
3697
|
|
|
3698
|
+
_resolveLocalSnapGridMinorDetailAlpha(smallStepPx) {
|
|
3699
|
+
const projectedStep = Math.max(0, Number(smallStepPx) || 0);
|
|
3700
|
+
const fadeRange = Math.max(
|
|
3701
|
+
Number.EPSILON,
|
|
3702
|
+
LOCAL_SNAP_GRID_MINOR_DETAIL_FADE_END_PX - LOCAL_SNAP_GRID_MINOR_DETAIL_FADE_START_PX
|
|
3703
|
+
);
|
|
3704
|
+
return Math.max(0, Math.min(
|
|
3705
|
+
1,
|
|
3706
|
+
(projectedStep - LOCAL_SNAP_GRID_MINOR_DETAIL_FADE_START_PX) / fadeRange
|
|
3707
|
+
));
|
|
3708
|
+
}
|
|
3709
|
+
|
|
3696
3710
|
_getLocalSnapGridStyleKind() {
|
|
3697
3711
|
const themeName = String(this.currentThemeName || '').trim();
|
|
3698
3712
|
return themeName === 'SpatialGrid2D' ? 'dot' : 'line';
|
|
@@ -3717,6 +3731,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3717
3731
|
)
|
|
3718
3732
|
);
|
|
3719
3733
|
const tileSize = Math.max(1, majorStep);
|
|
3734
|
+
const minorDetailAlpha = this._resolveLocalSnapGridMinorDetailAlpha(smallStep);
|
|
3720
3735
|
const viewportDpr = Math.max(1, Math.min(3, Number(this._lastViewportDpr || window.devicePixelRatio || 1)));
|
|
3721
3736
|
const bitmapSize = Math.max(1, Math.ceil(tileSize * viewportDpr));
|
|
3722
3737
|
if (canvas.width !== bitmapSize) {
|
|
@@ -3730,8 +3745,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3730
3745
|
ctx.clearRect(0, 0, tileSize, tileSize);
|
|
3731
3746
|
|
|
3732
3747
|
if (styleKind === 'dot') {
|
|
3733
|
-
if (
|
|
3734
|
-
ctx.fillStyle =
|
|
3748
|
+
if (minorDetailAlpha > 0.001) {
|
|
3749
|
+
ctx.fillStyle = `rgba(58, 69, 88, ${(0.68 * minorDetailAlpha).toFixed(3)})`;
|
|
3735
3750
|
const dotRadius = 1.2;
|
|
3736
3751
|
for (let y = 0; y < tileSize; y += smallStep) {
|
|
3737
3752
|
for (let x = 0; x < tileSize; x += smallStep) {
|
|
@@ -3764,7 +3779,13 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3764
3779
|
ctx.stroke();
|
|
3765
3780
|
};
|
|
3766
3781
|
|
|
3767
|
-
|
|
3782
|
+
if (minorDetailAlpha > 0.001) {
|
|
3783
|
+
drawLines(
|
|
3784
|
+
smallStep,
|
|
3785
|
+
`rgba(51, 65, 85, ${(0.24 * minorDetailAlpha).toFixed(3)})`,
|
|
3786
|
+
1
|
|
3787
|
+
);
|
|
3788
|
+
}
|
|
3768
3789
|
drawLines(majorStep, 'rgba(15, 23, 42, 0.42)', 1);
|
|
3769
3790
|
}
|
|
3770
3791
|
return tileSize;
|
|
@@ -3807,7 +3828,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3807
3828
|
].join('|');
|
|
3808
3829
|
const smallStepValue = safeSmallStep.toFixed(3);
|
|
3809
3830
|
const majorStepValue = safeMajorStep.toFixed(3);
|
|
3810
|
-
const
|
|
3831
|
+
const minorDetailAlpha = this._resolveLocalSnapGridMinorDetailAlpha(safeSmallStep);
|
|
3832
|
+
const showMinorDots = minorDetailAlpha > 0.001;
|
|
3811
3833
|
const backgroundSizeValue = safeStyleKind === 'dot'
|
|
3812
3834
|
? (showMinorDots
|
|
3813
3835
|
? `${majorStepValue}px ${majorStepValue}px, ${smallStepValue}px ${smallStepValue}px`
|
|
@@ -3829,7 +3851,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3829
3851
|
this._lastLocalSnapGridOpacity = opacityValue;
|
|
3830
3852
|
if (safeStyleKind === 'dot') {
|
|
3831
3853
|
const majorDot = 'radial-gradient(circle at 0 0, rgba(15, 23, 42, 0.82) 0 1.9px, transparent 2px)';
|
|
3832
|
-
const
|
|
3854
|
+
const minorDotAlphaValue = (0.68 * minorDetailAlpha).toFixed(3);
|
|
3855
|
+
const minorDot = `radial-gradient(circle at 0 0, rgba(58, 69, 88, ${minorDotAlphaValue}) 0 1.2px, transparent 1.3px)`;
|
|
3833
3856
|
const backgroundImage = showMinorDots ? `${majorDot}, ${minorDot}` : majorDot;
|
|
3834
3857
|
this._lastLocalSnapGridKey = localGridKey;
|
|
3835
3858
|
this._lastLocalSnapGridPatternPeriodPx = safeMajorStep;
|
|
@@ -3882,6 +3905,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3882
3905
|
const safeOpacity = Math.max(0, Math.min(0.68, Number(opacity) || 0));
|
|
3883
3906
|
const smallStepValue = safeSmallStep.toFixed(3);
|
|
3884
3907
|
const majorStepValue = safeMajorStep.toFixed(3);
|
|
3908
|
+
const minorDetailAlpha = this._resolveLocalSnapGridMinorDetailAlpha(safeSmallStep);
|
|
3909
|
+
const minorLineAlphaValue = (0.24 * minorDetailAlpha).toFixed(3);
|
|
3885
3910
|
const backgroundSizeValue = [
|
|
3886
3911
|
`${smallStepValue}px ${smallStepValue}px`,
|
|
3887
3912
|
`${smallStepValue}px ${smallStepValue}px`,
|
|
@@ -3889,8 +3914,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3889
3914
|
`${majorStepValue}px ${majorStepValue}px`
|
|
3890
3915
|
].join(', ');
|
|
3891
3916
|
const backgroundImage = [
|
|
3892
|
-
|
|
3893
|
-
|
|
3917
|
+
`linear-gradient(to right, rgba(51, 65, 85, ${minorLineAlphaValue}) 0 1px, transparent 1px)`,
|
|
3918
|
+
`linear-gradient(to bottom, rgba(51, 65, 85, ${minorLineAlphaValue}) 0 1px, transparent 1px)`,
|
|
3894
3919
|
'linear-gradient(to right, rgba(15, 23, 42, 0.42) 0 1px, transparent 1px)',
|
|
3895
3920
|
'linear-gradient(to bottom, rgba(15, 23, 42, 0.42) 0 1px, transparent 1px)'
|
|
3896
3921
|
].join(', ');
|
|
@@ -4076,12 +4101,15 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
4076
4101
|
return false;
|
|
4077
4102
|
}
|
|
4078
4103
|
|
|
4104
|
+
const shouldRefreshDeferredZoomProjection =
|
|
4105
|
+
this.isZooming === true ||
|
|
4106
|
+
this._localSnapGridStyleDeferredForZoom === true;
|
|
4079
4107
|
if (!this._localSnapGridLayer?.isConnected || !this._lastLocalSnapGridKey) {
|
|
4080
4108
|
const layer = this._ensureLocalSnapGridLayer();
|
|
4081
4109
|
if (!layer) {
|
|
4082
4110
|
return false;
|
|
4083
4111
|
}
|
|
4084
|
-
if (
|
|
4112
|
+
if (shouldRefreshDeferredZoomProjection === true) {
|
|
4085
4113
|
this._ensureLocalSnapGridBaseStyle(layer);
|
|
4086
4114
|
} else {
|
|
4087
4115
|
return this._syncLocalSnapGridLayer(visible);
|
|
@@ -4104,14 +4132,14 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
4104
4132
|
return false;
|
|
4105
4133
|
}
|
|
4106
4134
|
const styleKind = this._getLocalSnapGridStyleKind();
|
|
4107
|
-
if (
|
|
4135
|
+
if (shouldRefreshDeferredZoomProjection === true && styleKind === 'dot') {
|
|
4108
4136
|
const vfov = (Number(this.camera?.fov || 45) * Math.PI) / 180;
|
|
4109
4137
|
const pxPerWorld = height / Math.max(1, 2 * Math.tan(vfov / 2) * cameraZ);
|
|
4110
4138
|
const projection = this._resolveLocalSnapGridWorldStep(pxPerWorld);
|
|
4111
4139
|
this._applyLocalSnapGridStyle(
|
|
4112
4140
|
layer, styleKind, projection.smallStepPx, projection.majorStepPx, opacity);
|
|
4113
4141
|
this._localSnapGridStyleDeferredForZoom = false;
|
|
4114
|
-
} else if (
|
|
4142
|
+
} else if (shouldRefreshDeferredZoomProjection === true) {
|
|
4115
4143
|
const vfov = (Number(this.camera?.fov || 45) * Math.PI) / 180;
|
|
4116
4144
|
const pxPerWorld = height / Math.max(1, 2 * Math.tan(vfov / 2) * cameraZ);
|
|
4117
4145
|
const projection = this._resolveLocalSnapGridWorldStep(pxPerWorld);
|
|
@@ -6477,9 +6477,9 @@ window.MindMapInteractions = (function () {
|
|
|
6477
6477
|
scheduleMotionWillChangeEnable(module);
|
|
6478
6478
|
}
|
|
6479
6479
|
}
|
|
6480
|
-
// Keep wheel zoom in the cheap
|
|
6481
|
-
// pointer has not moved. Exact
|
|
6482
|
-
//
|
|
6480
|
+
// Keep wheel zoom in the cheap projection-only local grid branch when
|
|
6481
|
+
// the pointer has not moved. Exact CSS periods remain current through
|
|
6482
|
+
// the no-input gap; only the crisp line raster waits for idle settle.
|
|
6483
6483
|
if (module._isLocalSnapGridThemeEnabled?.() === true ||
|
|
6484
6484
|
module._localSnapGridVisible === true ||
|
|
6485
6485
|
module._localSnapGridLayer?.isConnected === true) {
|
package/wwwroot/_framework/{MindExecution.Core.psrddqi3mi.dll → MindExecution.Core.yrfbp4404m.dll}
RENAMED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/wwwroot/_framework/{MindExecution.Web.z1np8j1qu6.dll → MindExecution.Web.mvn80sbzgp.dll}
RENAMED
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mainAssemblyName": "MindExecution.Web",
|
|
3
3
|
"resources": {
|
|
4
|
-
"hash": "sha256-
|
|
4
|
+
"hash": "sha256-i2ory+UREibapPv0SX0hnBPJ+UaQ5EiOGp2Pwv77bl0=",
|
|
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.g6ztz7cmo2.dll": "System.Private.CoreLib.dll",
|
|
125
|
-
"MindExecution.Core.
|
|
126
|
-
"MindExecution.Kernel.
|
|
127
|
-
"MindExecution.Plugins.Admin.
|
|
128
|
-
"MindExecution.Plugins.Business.
|
|
129
|
-
"MindExecution.Plugins.Concept.
|
|
130
|
-
"MindExecution.Plugins.Directory.
|
|
131
|
-
"MindExecution.Plugins.PlanMaster.
|
|
132
|
-
"MindExecution.Plugins.YouTube.
|
|
133
|
-
"MindExecution.Shared.
|
|
134
|
-
"MindExecution.Web.
|
|
125
|
+
"MindExecution.Core.yrfbp4404m.dll": "MindExecution.Core.dll",
|
|
126
|
+
"MindExecution.Kernel.qpodwwdiwx.dll": "MindExecution.Kernel.dll",
|
|
127
|
+
"MindExecution.Plugins.Admin.8uzx32oujb.dll": "MindExecution.Plugins.Admin.dll",
|
|
128
|
+
"MindExecution.Plugins.Business.tx05qckwdp.dll": "MindExecution.Plugins.Business.dll",
|
|
129
|
+
"MindExecution.Plugins.Concept.m3ew6te59x.dll": "MindExecution.Plugins.Concept.dll",
|
|
130
|
+
"MindExecution.Plugins.Directory.9qioesdf9k.dll": "MindExecution.Plugins.Directory.dll",
|
|
131
|
+
"MindExecution.Plugins.PlanMaster.74t0l3lj50.dll": "MindExecution.Plugins.PlanMaster.dll",
|
|
132
|
+
"MindExecution.Plugins.YouTube.rw3h96cxzb.dll": "MindExecution.Plugins.YouTube.dll",
|
|
133
|
+
"MindExecution.Shared.ubxwcs5koc.dll": "MindExecution.Shared.dll",
|
|
134
|
+
"MindExecution.Web.mvn80sbzgp.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.
|
|
280
|
-
"MindExecution.Kernel.
|
|
281
|
-
"MindExecution.Plugins.Business.
|
|
282
|
-
"MindExecution.Plugins.Concept.
|
|
283
|
-
"MindExecution.Plugins.PlanMaster.
|
|
284
|
-
"MindExecution.Shared.
|
|
285
|
-
"MindExecution.Web.
|
|
279
|
+
"MindExecution.Core.yrfbp4404m.dll": "sha256-nq3r4xX1c1c2Z7xUBMYKC9rt0nTkdm9Y+eTxfxlQaU4=",
|
|
280
|
+
"MindExecution.Kernel.qpodwwdiwx.dll": "sha256-olF1qq4bo/XPU7Kbi5/CqHwcXYomi6OIretnVjngi8c=",
|
|
281
|
+
"MindExecution.Plugins.Business.tx05qckwdp.dll": "sha256-/yHM2edJdWvBjl9kECWO1NRROSfAmLOMAgvw+6Q7jOI=",
|
|
282
|
+
"MindExecution.Plugins.Concept.m3ew6te59x.dll": "sha256-nnbzQPkW3yXRr/45sCYu8VYJVVVnV+2/Wu3kfYB6Rpo=",
|
|
283
|
+
"MindExecution.Plugins.PlanMaster.74t0l3lj50.dll": "sha256-Z8R6DLdddz11VeV7sLWnjdZxWyWNNP836HEwxm3VZ1I=",
|
|
284
|
+
"MindExecution.Shared.ubxwcs5koc.dll": "sha256-RsMq3/t1Nd+Tdf8CXmwW4fGVHg12525aH1ngTLaAHTw=",
|
|
285
|
+
"MindExecution.Web.mvn80sbzgp.dll": "sha256-4orMyt10vcNSu51DuaGyeZFzif8zM8OYy6soyE+7So4="
|
|
286
286
|
},
|
|
287
287
|
"lazyAssembly": {
|
|
288
|
-
"MindExecution.Plugins.Admin.
|
|
289
|
-
"MindExecution.Plugins.Directory.
|
|
290
|
-
"MindExecution.Plugins.YouTube.
|
|
288
|
+
"MindExecution.Plugins.Admin.8uzx32oujb.dll": "sha256-UKGhMbjZpy62abQZQFHZlygg1WDDNZ5772yzNISn+iA=",
|
|
289
|
+
"MindExecution.Plugins.Directory.9qioesdf9k.dll": "sha256-Lz07C5H7DBSszx9DH5LMxqX6rG2ONaJK4jGwKAy9r2g=",
|
|
290
|
+
"MindExecution.Plugins.YouTube.rw3h96cxzb.dll": "sha256-C698Z1kqGX9giei+qoNuUC3L0sqPac0cNRVUy/Fo7uk="
|
|
291
291
|
}
|
|
292
292
|
},
|
|
293
293
|
"cacheBootResources": true,
|
package/wwwroot/index.html
CHANGED
|
@@ -614,7 +614,7 @@
|
|
|
614
614
|
}
|
|
615
615
|
|
|
616
616
|
const base = '_content/MindExecution.Shared/js/';
|
|
617
|
-
const scriptVersion = '20260819-
|
|
617
|
+
const scriptVersion = '20260819-grid-zoom-density-v976';
|
|
618
618
|
const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
|
|
619
619
|
console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
|
|
620
620
|
const criticalScripts = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
self.assetsManifest = {
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "JCn6P4Wg",
|
|
3
3
|
"assets": [
|
|
4
4
|
{
|
|
5
5
|
"hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
|
|
@@ -86,7 +86,7 @@ self.assetsManifest = {
|
|
|
86
86
|
"url": "_content/MindExecution.Shared/js/mind-map-board-render-ownership.js"
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
"hash": "sha256
|
|
89
|
+
"hash": "sha256-HgjmwgtzGozTVfDzhgj9Nr2sjxwY+kL6DzQjGEIOZ8k=",
|
|
90
90
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
@@ -118,7 +118,7 @@ self.assetsManifest = {
|
|
|
118
118
|
"url": "_content/MindExecution.Shared/js/mind-map-glow-shader.js"
|
|
119
119
|
},
|
|
120
120
|
{
|
|
121
|
-
"hash": "sha256-
|
|
121
|
+
"hash": "sha256-5sVcWSPLCHmnvAYLsqBwno201net5gfRYOqtQLUXQZE=",
|
|
122
122
|
"url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
|
|
123
123
|
},
|
|
124
124
|
{
|
|
@@ -438,44 +438,44 @@ self.assetsManifest = {
|
|
|
438
438
|
"url": "_framework/MimeMapping.og9ys58ylm.dll"
|
|
439
439
|
},
|
|
440
440
|
{
|
|
441
|
-
"hash": "sha256-
|
|
442
|
-
"url": "_framework/MindExecution.Core.
|
|
441
|
+
"hash": "sha256-nq3r4xX1c1c2Z7xUBMYKC9rt0nTkdm9Y+eTxfxlQaU4=",
|
|
442
|
+
"url": "_framework/MindExecution.Core.yrfbp4404m.dll"
|
|
443
443
|
},
|
|
444
444
|
{
|
|
445
|
-
"hash": "sha256
|
|
446
|
-
"url": "_framework/MindExecution.Kernel.
|
|
445
|
+
"hash": "sha256-olF1qq4bo/XPU7Kbi5/CqHwcXYomi6OIretnVjngi8c=",
|
|
446
|
+
"url": "_framework/MindExecution.Kernel.qpodwwdiwx.dll"
|
|
447
447
|
},
|
|
448
448
|
{
|
|
449
|
-
"hash": "sha256-
|
|
450
|
-
"url": "_framework/MindExecution.Plugins.Admin.
|
|
449
|
+
"hash": "sha256-UKGhMbjZpy62abQZQFHZlygg1WDDNZ5772yzNISn+iA=",
|
|
450
|
+
"url": "_framework/MindExecution.Plugins.Admin.8uzx32oujb.dll"
|
|
451
451
|
},
|
|
452
452
|
{
|
|
453
|
-
"hash": "sha256
|
|
454
|
-
"url": "_framework/MindExecution.Plugins.Business.
|
|
453
|
+
"hash": "sha256-/yHM2edJdWvBjl9kECWO1NRROSfAmLOMAgvw+6Q7jOI=",
|
|
454
|
+
"url": "_framework/MindExecution.Plugins.Business.tx05qckwdp.dll"
|
|
455
455
|
},
|
|
456
456
|
{
|
|
457
|
-
"hash": "sha256-
|
|
458
|
-
"url": "_framework/MindExecution.Plugins.Concept.
|
|
457
|
+
"hash": "sha256-nnbzQPkW3yXRr/45sCYu8VYJVVVnV+2/Wu3kfYB6Rpo=",
|
|
458
|
+
"url": "_framework/MindExecution.Plugins.Concept.m3ew6te59x.dll"
|
|
459
459
|
},
|
|
460
460
|
{
|
|
461
|
-
"hash": "sha256-
|
|
462
|
-
"url": "_framework/MindExecution.Plugins.Directory.
|
|
461
|
+
"hash": "sha256-Lz07C5H7DBSszx9DH5LMxqX6rG2ONaJK4jGwKAy9r2g=",
|
|
462
|
+
"url": "_framework/MindExecution.Plugins.Directory.9qioesdf9k.dll"
|
|
463
463
|
},
|
|
464
464
|
{
|
|
465
|
-
"hash": "sha256-
|
|
466
|
-
"url": "_framework/MindExecution.Plugins.PlanMaster.
|
|
465
|
+
"hash": "sha256-Z8R6DLdddz11VeV7sLWnjdZxWyWNNP836HEwxm3VZ1I=",
|
|
466
|
+
"url": "_framework/MindExecution.Plugins.PlanMaster.74t0l3lj50.dll"
|
|
467
467
|
},
|
|
468
468
|
{
|
|
469
|
-
"hash": "sha256-
|
|
470
|
-
"url": "_framework/MindExecution.Plugins.YouTube.
|
|
469
|
+
"hash": "sha256-C698Z1kqGX9giei+qoNuUC3L0sqPac0cNRVUy/Fo7uk=",
|
|
470
|
+
"url": "_framework/MindExecution.Plugins.YouTube.rw3h96cxzb.dll"
|
|
471
471
|
},
|
|
472
472
|
{
|
|
473
|
-
"hash": "sha256-
|
|
474
|
-
"url": "_framework/MindExecution.Shared.
|
|
473
|
+
"hash": "sha256-RsMq3/t1Nd+Tdf8CXmwW4fGVHg12525aH1ngTLaAHTw=",
|
|
474
|
+
"url": "_framework/MindExecution.Shared.ubxwcs5koc.dll"
|
|
475
475
|
},
|
|
476
476
|
{
|
|
477
|
-
"hash": "sha256-
|
|
478
|
-
"url": "_framework/MindExecution.Web.
|
|
477
|
+
"hash": "sha256-4orMyt10vcNSu51DuaGyeZFzif8zM8OYy6soyE+7So4=",
|
|
478
|
+
"url": "_framework/MindExecution.Web.mvn80sbzgp.dll"
|
|
479
479
|
},
|
|
480
480
|
{
|
|
481
481
|
"hash": "sha256-IsZJ91/OW+fHzNqIgEc7Y072ns8z9dGritiSyvR9Wgc=",
|
|
@@ -794,7 +794,7 @@ self.assetsManifest = {
|
|
|
794
794
|
"url": "_framework/Websocket.Client.vapounvmnl.dll"
|
|
795
795
|
},
|
|
796
796
|
{
|
|
797
|
-
"hash": "sha256-
|
|
797
|
+
"hash": "sha256-Hmlq6LlQsFCZjyCJas5hdlZGxs0pLTELTn3eVSmswyE=",
|
|
798
798
|
"url": "_framework/blazor.boot.json"
|
|
799
799
|
},
|
|
800
800
|
{
|
|
@@ -870,7 +870,7 @@ self.assetsManifest = {
|
|
|
870
870
|
"url": "icon-512.png"
|
|
871
871
|
},
|
|
872
872
|
{
|
|
873
|
-
"hash": "sha256-
|
|
873
|
+
"hash": "sha256-h74aPUpMz/6U/N5yUj8zrvt8xaw+B/L3ZvrZS7h5EzQ=",
|
|
874
874
|
"url": "index.html"
|
|
875
875
|
},
|
|
876
876
|
{
|