@mindexec/cli 0.2.466 → 0.2.467
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 +6 -4
- 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/_framework/{MindExecution.Core.psrddqi3mi.dll → MindExecution.Core.7oa1zr128r.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Kernel.emus4f6jja.dll → MindExecution.Kernel.dqr12udjsr.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Admin.q3gz9b4wp8.dll → MindExecution.Plugins.Admin.6bt51zpdq7.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Business.dr4m9mbnc5.dll → MindExecution.Plugins.Business.e92nh6aw24.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Concept.xzrzi61p7e.dll → MindExecution.Plugins.Concept.z5rfp7c5gn.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Directory.hcbtf3n8w7.dll → MindExecution.Plugins.Directory.6qmfycdkxt.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.1w09epz56f.dll → MindExecution.Plugins.PlanMaster.lbbov61zg3.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.YouTube.7vjbulgfo8.dll → MindExecution.Plugins.YouTube.7vjisvqu3j.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Shared.zj2n1axexl.dll → MindExecution.Shared.ydgyfah35e.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Web.z1np8j1qu6.dll → MindExecution.Web.b68gpm21e3.dll} +0 -0
- package/wwwroot/_framework/blazor.boot.json +21 -21
- package/wwwroot/service-worker-assets.js +22 -22
- 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.467",
|
|
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",
|
|
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
40
|
"test:canvas:board-owner": "node scripts/board-render-ownership-smoke.mjs",
|
|
41
|
-
"test:codex-sdk": "node scripts/codex-sdk-runtime-smoke.mjs",
|
|
42
|
-
"test:codex-sdk:image": "node scripts/codex-sdk-image-runtime-smoke.mjs",
|
|
41
|
+
"test:codex-sdk": "node scripts/codex-sdk-runtime-smoke.mjs",
|
|
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');
|
package/wwwroot/_framework/{MindExecution.Core.psrddqi3mi.dll → MindExecution.Core.7oa1zr128r.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.b68gpm21e3.dll}
RENAMED
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mainAssemblyName": "MindExecution.Web",
|
|
3
3
|
"resources": {
|
|
4
|
-
"hash": "sha256-
|
|
4
|
+
"hash": "sha256-pm9gUyCN7xLw9EaSc1lL5kN8jJ23nv5LAeniQeW0HHY=",
|
|
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.7oa1zr128r.dll": "MindExecution.Core.dll",
|
|
126
|
+
"MindExecution.Kernel.dqr12udjsr.dll": "MindExecution.Kernel.dll",
|
|
127
|
+
"MindExecution.Plugins.Admin.6bt51zpdq7.dll": "MindExecution.Plugins.Admin.dll",
|
|
128
|
+
"MindExecution.Plugins.Business.e92nh6aw24.dll": "MindExecution.Plugins.Business.dll",
|
|
129
|
+
"MindExecution.Plugins.Concept.z5rfp7c5gn.dll": "MindExecution.Plugins.Concept.dll",
|
|
130
|
+
"MindExecution.Plugins.Directory.6qmfycdkxt.dll": "MindExecution.Plugins.Directory.dll",
|
|
131
|
+
"MindExecution.Plugins.PlanMaster.lbbov61zg3.dll": "MindExecution.Plugins.PlanMaster.dll",
|
|
132
|
+
"MindExecution.Plugins.YouTube.7vjisvqu3j.dll": "MindExecution.Plugins.YouTube.dll",
|
|
133
|
+
"MindExecution.Shared.ydgyfah35e.dll": "MindExecution.Shared.dll",
|
|
134
|
+
"MindExecution.Web.b68gpm21e3.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.7oa1zr128r.dll": "sha256-uTTfp+Iu3C7jgsyLauWGcGYcFQsEcPHA1FGCKQXrTGk=",
|
|
280
|
+
"MindExecution.Kernel.dqr12udjsr.dll": "sha256-pUxuISA8V4Ro0H+636QoXiU5+VF3BW7L27zas6ovW0U=",
|
|
281
|
+
"MindExecution.Plugins.Business.e92nh6aw24.dll": "sha256-MpREZ+eukJRDg6mQ7ZOEAe6yHl9UtocC07LTTmFxI5E=",
|
|
282
|
+
"MindExecution.Plugins.Concept.z5rfp7c5gn.dll": "sha256-R2ye/oFIO0haYP3I01gV/4gpQBd1scfEusjPznFWbvg=",
|
|
283
|
+
"MindExecution.Plugins.PlanMaster.lbbov61zg3.dll": "sha256-UXaJeM7BqhQCv3DY1zkiXGJRNxquudkBYgmchgxnx00=",
|
|
284
|
+
"MindExecution.Shared.ydgyfah35e.dll": "sha256-di5LlqqDZKM+3+CBUxQUQ/rFwOF5laSkr1PCjz2pgdk=",
|
|
285
|
+
"MindExecution.Web.b68gpm21e3.dll": "sha256-nUEDIUiOGqD37D3xgqqysvvUQneVI5rxGZ6aBRZUI8U="
|
|
286
286
|
},
|
|
287
287
|
"lazyAssembly": {
|
|
288
|
-
"MindExecution.Plugins.Admin.
|
|
289
|
-
"MindExecution.Plugins.Directory.
|
|
290
|
-
"MindExecution.Plugins.YouTube.
|
|
288
|
+
"MindExecution.Plugins.Admin.6bt51zpdq7.dll": "sha256-ogBaZoZztkITRjNx0LAIr0vZH2phNsJlQE5iRw6Ws+c=",
|
|
289
|
+
"MindExecution.Plugins.Directory.6qmfycdkxt.dll": "sha256-Mv2nGkAFk5n8CH/OVWfSL4vrEwNXBmZ8ULHFjeluERs=",
|
|
290
|
+
"MindExecution.Plugins.YouTube.7vjisvqu3j.dll": "sha256-7TKJ3SFwKH+iO+CRm3QxBuRIyNZGOcBp822L3KrEE1k="
|
|
291
291
|
}
|
|
292
292
|
},
|
|
293
293
|
"cacheBootResources": true,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
self.assetsManifest = {
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "c6MTEECG",
|
|
3
3
|
"assets": [
|
|
4
4
|
{
|
|
5
5
|
"hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
|
|
@@ -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-uTTfp+Iu3C7jgsyLauWGcGYcFQsEcPHA1FGCKQXrTGk=",
|
|
442
|
+
"url": "_framework/MindExecution.Core.7oa1zr128r.dll"
|
|
443
443
|
},
|
|
444
444
|
{
|
|
445
|
-
"hash": "sha256
|
|
446
|
-
"url": "_framework/MindExecution.Kernel.
|
|
445
|
+
"hash": "sha256-pUxuISA8V4Ro0H+636QoXiU5+VF3BW7L27zas6ovW0U=",
|
|
446
|
+
"url": "_framework/MindExecution.Kernel.dqr12udjsr.dll"
|
|
447
447
|
},
|
|
448
448
|
{
|
|
449
|
-
"hash": "sha256-
|
|
450
|
-
"url": "_framework/MindExecution.Plugins.Admin.
|
|
449
|
+
"hash": "sha256-ogBaZoZztkITRjNx0LAIr0vZH2phNsJlQE5iRw6Ws+c=",
|
|
450
|
+
"url": "_framework/MindExecution.Plugins.Admin.6bt51zpdq7.dll"
|
|
451
451
|
},
|
|
452
452
|
{
|
|
453
|
-
"hash": "sha256-
|
|
454
|
-
"url": "_framework/MindExecution.Plugins.Business.
|
|
453
|
+
"hash": "sha256-MpREZ+eukJRDg6mQ7ZOEAe6yHl9UtocC07LTTmFxI5E=",
|
|
454
|
+
"url": "_framework/MindExecution.Plugins.Business.e92nh6aw24.dll"
|
|
455
455
|
},
|
|
456
456
|
{
|
|
457
|
-
"hash": "sha256-
|
|
458
|
-
"url": "_framework/MindExecution.Plugins.Concept.
|
|
457
|
+
"hash": "sha256-R2ye/oFIO0haYP3I01gV/4gpQBd1scfEusjPznFWbvg=",
|
|
458
|
+
"url": "_framework/MindExecution.Plugins.Concept.z5rfp7c5gn.dll"
|
|
459
459
|
},
|
|
460
460
|
{
|
|
461
|
-
"hash": "sha256-
|
|
462
|
-
"url": "_framework/MindExecution.Plugins.Directory.
|
|
461
|
+
"hash": "sha256-Mv2nGkAFk5n8CH/OVWfSL4vrEwNXBmZ8ULHFjeluERs=",
|
|
462
|
+
"url": "_framework/MindExecution.Plugins.Directory.6qmfycdkxt.dll"
|
|
463
463
|
},
|
|
464
464
|
{
|
|
465
|
-
"hash": "sha256-
|
|
466
|
-
"url": "_framework/MindExecution.Plugins.PlanMaster.
|
|
465
|
+
"hash": "sha256-UXaJeM7BqhQCv3DY1zkiXGJRNxquudkBYgmchgxnx00=",
|
|
466
|
+
"url": "_framework/MindExecution.Plugins.PlanMaster.lbbov61zg3.dll"
|
|
467
467
|
},
|
|
468
468
|
{
|
|
469
|
-
"hash": "sha256-
|
|
470
|
-
"url": "_framework/MindExecution.Plugins.YouTube.
|
|
469
|
+
"hash": "sha256-7TKJ3SFwKH+iO+CRm3QxBuRIyNZGOcBp822L3KrEE1k=",
|
|
470
|
+
"url": "_framework/MindExecution.Plugins.YouTube.7vjisvqu3j.dll"
|
|
471
471
|
},
|
|
472
472
|
{
|
|
473
|
-
"hash": "sha256-
|
|
474
|
-
"url": "_framework/MindExecution.Shared.
|
|
473
|
+
"hash": "sha256-di5LlqqDZKM+3+CBUxQUQ/rFwOF5laSkr1PCjz2pgdk=",
|
|
474
|
+
"url": "_framework/MindExecution.Shared.ydgyfah35e.dll"
|
|
475
475
|
},
|
|
476
476
|
{
|
|
477
|
-
"hash": "sha256-
|
|
478
|
-
"url": "_framework/MindExecution.Web.
|
|
477
|
+
"hash": "sha256-nUEDIUiOGqD37D3xgqqysvvUQneVI5rxGZ6aBRZUI8U=",
|
|
478
|
+
"url": "_framework/MindExecution.Web.b68gpm21e3.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-8w2+rpH82kqP3ROeFCRsVPI79rYq7JtRXjv5ZoRYfjk=",
|
|
798
798
|
"url": "_framework/blazor.boot.json"
|
|
799
799
|
},
|
|
800
800
|
{
|