@cloudcli-ai/cloudcli 1.32.0 → 1.33.1
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.de.md +1 -1
- package/README.ko.md +1 -1
- package/README.md +1 -1
- package/README.ru.md +1 -1
- package/README.tr.md +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/api-docs.html +6 -7
- package/dist/assets/index-BsyL_xmI.js +1348 -0
- package/dist/assets/index-FSP9Hz7V.css +32 -0
- package/dist/index.html +2 -2
- package/dist/modelConstants.js +848 -0
- package/dist-server/server/claude-sdk.js +57 -34
- package/dist-server/server/claude-sdk.js.map +1 -1
- package/dist-server/server/cursor-cli.js +6 -3
- package/dist-server/server/cursor-cli.js.map +1 -1
- package/dist-server/server/gemini-cli.js +3 -1
- package/dist-server/server/gemini-cli.js.map +1 -1
- package/dist-server/server/gemini-response-handler.js +34 -0
- package/dist-server/server/gemini-response-handler.js.map +1 -1
- package/dist-server/server/index.js +234 -67
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/modules/database/index.js +1 -0
- package/dist-server/server/modules/database/index.js.map +1 -1
- package/dist-server/server/modules/projects/services/project-management.service.js +1 -0
- package/dist-server/server/modules/projects/services/project-management.service.js.map +1 -1
- package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js +4 -0
- package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js +28 -6
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-models.provider.js +146 -0
- package/dist-server/server/modules/providers/list/claude/claude-models.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude.provider.js +2 -0
- package/dist-server/server/modules/providers/list/claude/claude.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-models.provider.js +84 -0
- package/dist-server/server/modules/providers/list/codex/codex-models.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-skills.provider.js +7 -39
- package/dist-server/server/modules/providers/list/codex/codex-skills.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex.provider.js +2 -0
- package/dist-server/server/modules/providers/list/codex/codex.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js +754 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js +2 -15
- package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor.provider.js +2 -0
- package/dist-server/server/modules/providers/list/cursor/cursor.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/gemini/gemini-models.provider.js +27 -0
- package/dist-server/server/modules/providers/list/gemini/gemini-models.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/gemini/gemini-sessions.provider.js +3 -9
- package/dist-server/server/modules/providers/list/gemini/gemini-sessions.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/gemini/gemini.provider.js +2 -0
- package/dist-server/server/modules/providers/list/gemini/gemini.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js +92 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-mcp.provider.js +181 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js +267 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js +115 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js +410 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-skills.provider.js +62 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-skills.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode.provider.js +19 -0
- package/dist-server/server/modules/providers/list/opencode/opencode.provider.js.map +1 -0
- package/dist-server/server/modules/providers/provider.registry.js +2 -0
- package/dist-server/server/modules/providers/provider.registry.js.map +1 -1
- package/dist-server/server/modules/providers/provider.routes.js +42 -1
- package/dist-server/server/modules/providers/provider.routes.js.map +1 -1
- package/dist-server/server/modules/providers/services/mcp.service.js +1 -9
- package/dist-server/server/modules/providers/services/mcp.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/provider-models.service.js +226 -0
- package/dist-server/server/modules/providers/services/provider-models.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/session-synchronizer.service.js +1 -0
- package/dist-server/server/modules/providers/services/session-synchronizer.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/sessions-watcher.service.js +7 -0
- package/dist-server/server/modules/providers/services/sessions-watcher.service.js.map +1 -1
- package/dist-server/server/modules/providers/shared/base/abstract.provider.js.map +1 -1
- package/dist-server/server/modules/providers/tests/mcp.test.js +73 -6
- package/dist-server/server/modules/providers/tests/mcp.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/opencode-models.test.js +66 -0
- package/dist-server/server/modules/providers/tests/opencode-models.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/opencode-sessions.test.js +262 -0
- package/dist-server/server/modules/providers/tests/opencode-sessions.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/provider-models.service.test.js +298 -0
- package/dist-server/server/modules/providers/tests/provider-models.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/skills.test.js +33 -0
- package/dist-server/server/modules/providers/tests/skills.test.js.map +1 -1
- package/dist-server/server/modules/websocket/services/chat-websocket.service.js +12 -1
- package/dist-server/server/modules/websocket/services/chat-websocket.service.js.map +1 -1
- package/dist-server/server/modules/websocket/services/plugin-websocket-proxy.service.js +4 -4
- package/dist-server/server/modules/websocket/services/plugin-websocket-proxy.service.js.map +1 -1
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js +18 -3
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js.map +1 -1
- package/dist-server/server/modules/websocket/services/websocket-auth.service.js +6 -2
- package/dist-server/server/modules/websocket/services/websocket-auth.service.js.map +1 -1
- package/dist-server/server/modules/websocket/services/websocket-server.service.js +18 -0
- package/dist-server/server/modules/websocket/services/websocket-server.service.js.map +1 -1
- package/dist-server/server/openai-codex.js +32 -4
- package/dist-server/server/openai-codex.js.map +1 -1
- package/dist-server/server/opencode-cli.js +287 -0
- package/dist-server/server/opencode-cli.js.map +1 -0
- package/dist-server/server/opencode-cli.test.js +84 -0
- package/dist-server/server/opencode-cli.test.js.map +1 -0
- package/dist-server/server/routes/agent.js +21 -8
- package/dist-server/server/routes/agent.js.map +1 -1
- package/dist-server/server/routes/commands.js +202 -209
- package/dist-server/server/routes/commands.js.map +1 -1
- package/dist-server/server/routes/cursor.js +2 -2
- package/dist-server/server/routes/cursor.js.map +1 -1
- package/dist-server/server/routes/settings.js +0 -10
- package/dist-server/server/routes/settings.js.map +1 -1
- package/dist-server/server/routes/tests/commands.test.js +76 -0
- package/dist-server/server/routes/tests/commands.test.js.map +1 -0
- package/dist-server/server/shared/utils.js +286 -0
- package/dist-server/server/shared/utils.js.map +1 -1
- package/package.json +5 -2
- package/public/api-docs.html +878 -0
- package/public/modelConstants.js +848 -0
- package/server/claude-sdk.js +64 -35
- package/server/cursor-cli.js +6 -3
- package/server/gemini-cli.js +7 -1
- package/server/gemini-response-handler.js +38 -0
- package/server/index.js +259 -75
- package/server/modules/database/index.ts +1 -0
- package/server/modules/projects/services/project-management.service.ts +2 -0
- package/server/modules/projects/services/projects-with-sessions-fetch.service.ts +7 -1
- package/server/modules/providers/README.md +11 -3
- package/server/modules/providers/list/claude/claude-auth.provider.ts +34 -6
- package/server/modules/providers/list/claude/claude-models.provider.ts +196 -0
- package/server/modules/providers/list/claude/claude.provider.ts +3 -0
- package/server/modules/providers/list/codex/codex-models.provider.ts +125 -0
- package/server/modules/providers/list/codex/codex-skills.provider.ts +10 -50
- package/server/modules/providers/list/codex/codex.provider.ts +3 -0
- package/server/modules/providers/list/cursor/cursor-models.provider.ts +820 -0
- package/server/modules/providers/list/cursor/cursor-sessions.provider.ts +7 -20
- package/server/modules/providers/list/cursor/cursor.provider.ts +3 -0
- package/server/modules/providers/list/gemini/gemini-models.provider.ts +42 -0
- package/server/modules/providers/list/gemini/gemini-sessions.provider.ts +3 -10
- package/server/modules/providers/list/gemini/gemini.provider.ts +3 -0
- package/server/modules/providers/list/opencode/opencode-auth.provider.ts +111 -0
- package/server/modules/providers/list/opencode/opencode-mcp.provider.ts +228 -0
- package/server/modules/providers/list/opencode/opencode-models.provider.ts +339 -0
- package/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.ts +157 -0
- package/server/modules/providers/list/opencode/opencode-sessions.provider.ts +506 -0
- package/server/modules/providers/list/opencode/opencode-skills.provider.ts +78 -0
- package/server/modules/providers/list/opencode/opencode.provider.ts +27 -0
- package/server/modules/providers/provider.registry.ts +2 -0
- package/server/modules/providers/provider.routes.ts +62 -2
- package/server/modules/providers/services/mcp.service.ts +1 -12
- package/server/modules/providers/services/provider-models.service.ts +358 -0
- package/server/modules/providers/services/session-synchronizer.service.ts +1 -0
- package/server/modules/providers/services/sessions-watcher.service.ts +8 -0
- package/server/modules/providers/shared/base/abstract.provider.ts +2 -0
- package/server/modules/providers/tests/mcp.test.ts +93 -6
- package/server/modules/providers/tests/opencode-models.test.ts +73 -0
- package/server/modules/providers/tests/opencode-sessions.test.ts +334 -0
- package/server/modules/providers/tests/provider-models.service.test.ts +349 -0
- package/server/modules/providers/tests/skills.test.ts +66 -0
- package/server/modules/websocket/services/chat-websocket.service.ts +15 -1
- package/server/modules/websocket/services/plugin-websocket-proxy.service.ts +4 -4
- package/server/modules/websocket/services/shell-websocket.service.ts +22 -2
- package/server/modules/websocket/services/websocket-auth.service.ts +7 -2
- package/server/modules/websocket/services/websocket-server.service.ts +18 -0
- package/server/openai-codex.js +41 -4
- package/server/opencode-cli.js +336 -0
- package/server/opencode-cli.test.js +95 -0
- package/server/routes/agent.js +22 -8
- package/server/routes/commands.js +254 -233
- package/server/routes/cursor.js +2 -2
- package/server/routes/settings.js +1 -10
- package/server/routes/tests/commands.test.js +82 -0
- package/server/shared/interfaces.ts +45 -0
- package/server/shared/types.ts +88 -1
- package/server/shared/utils.ts +384 -0
- package/dist/assets/index-AaSE7-3t.js +0 -1336
- package/dist/assets/index-CKaku72N.css +0 -32
- package/dist-server/shared/modelConstants.js +0 -99
- package/dist-server/shared/modelConstants.js.map +0 -1
- package/shared/modelConstants.js +0 -107
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import TOML from '@iarna/toml';
|
|
5
|
+
import { buildDefaultProviderCurrentActiveModel, readObjectRecord, readOptionalString, writeProviderSessionActiveModelChange, } from '../../../../shared/utils.js';
|
|
6
|
+
export const CODEX_FALLBACK_MODELS = {
|
|
7
|
+
OPTIONS: [
|
|
8
|
+
{ value: 'gpt-5.5', label: 'gpt-5.5' },
|
|
9
|
+
{ value: 'gpt-5.4', label: 'gpt-5.4' },
|
|
10
|
+
{ value: 'gpt-5.4-mini', label: 'gpt-5.4-mini' },
|
|
11
|
+
{ value: 'gpt-5.3-codex', label: 'gpt-5.3-codex' },
|
|
12
|
+
{ value: 'gpt-5.2', label: 'gpt-5.2' },
|
|
13
|
+
],
|
|
14
|
+
DEFAULT: 'gpt-5.4',
|
|
15
|
+
};
|
|
16
|
+
const CODEX_MODELS_CACHE_PATH = path.join(os.homedir(), '.codex', 'models_cache.json');
|
|
17
|
+
const CODEX_CONFIG_PATH = path.join(os.homedir(), '.codex', 'config.toml');
|
|
18
|
+
const isCodexCachedModel = (value) => {
|
|
19
|
+
const record = readObjectRecord(value);
|
|
20
|
+
return Boolean(record && readOptionalString(record.slug));
|
|
21
|
+
};
|
|
22
|
+
const readCodexPriority = (value) => (typeof value === 'number' && Number.isFinite(value) ? value : Number.MAX_SAFE_INTEGER);
|
|
23
|
+
const mapCodexModel = (model) => ({
|
|
24
|
+
value: model.slug,
|
|
25
|
+
label: readOptionalString(model.display_name) ?? model.slug,
|
|
26
|
+
description: readOptionalString(model.description),
|
|
27
|
+
});
|
|
28
|
+
const buildCodexModelsDefinition = (models) => {
|
|
29
|
+
const sortedModels = [...models]
|
|
30
|
+
.filter((model) => model.visibility !== 'hidden' && model.supported_in_api !== false)
|
|
31
|
+
.sort((left, right) => readCodexPriority(left.priority) - readCodexPriority(right.priority));
|
|
32
|
+
const options = [];
|
|
33
|
+
const seenValues = new Set();
|
|
34
|
+
for (const model of sortedModels) {
|
|
35
|
+
const mappedModel = mapCodexModel(model);
|
|
36
|
+
if (seenValues.has(mappedModel.value)) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
seenValues.add(mappedModel.value);
|
|
40
|
+
options.push(mappedModel);
|
|
41
|
+
}
|
|
42
|
+
if (options.length === 0) {
|
|
43
|
+
return CODEX_FALLBACK_MODELS;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
OPTIONS: options,
|
|
47
|
+
DEFAULT: options[0]?.value ?? CODEX_FALLBACK_MODELS.DEFAULT,
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export class CodexProviderModels {
|
|
51
|
+
async getSupportedModels() {
|
|
52
|
+
try {
|
|
53
|
+
const raw = await readFile(CODEX_MODELS_CACHE_PATH, 'utf8');
|
|
54
|
+
const parsed = readObjectRecord(JSON.parse(raw));
|
|
55
|
+
const models = Array.isArray(parsed?.models)
|
|
56
|
+
? parsed.models.filter(isCodexCachedModel)
|
|
57
|
+
: [];
|
|
58
|
+
return buildCodexModelsDefinition(models);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return CODEX_FALLBACK_MODELS;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async getCurrentActiveModel() {
|
|
65
|
+
try {
|
|
66
|
+
const raw = await readFile(CODEX_CONFIG_PATH, 'utf8');
|
|
67
|
+
const parsed = readObjectRecord(TOML.parse(raw));
|
|
68
|
+
const model = readOptionalString(parsed?.model);
|
|
69
|
+
if (!model) {
|
|
70
|
+
return buildDefaultProviderCurrentActiveModel(await this.getSupportedModels());
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
model,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return buildDefaultProviderCurrentActiveModel(await this.getSupportedModels());
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async changeActiveModel(input) {
|
|
81
|
+
return writeProviderSessionActiveModelChange('codex', input);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=codex-models.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-models.provider.js","sourceRoot":"","sources":["../../../../../../server/modules/providers/list/codex/codex-models.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +1,7 @@
|
|
|
1
|
-
import fs from 'node:fs/promises';
|
|
2
1
|
import os from 'node:os';
|
|
3
2
|
import path from 'node:path';
|
|
4
3
|
import { SkillsProvider } from '../../../../modules/providers/shared/skills/skills.provider.js';
|
|
5
|
-
|
|
6
|
-
try {
|
|
7
|
-
const gitMarkerStats = await fs.stat(path.join(dirPath, '.git'));
|
|
8
|
-
return gitMarkerStats.isDirectory() || gitMarkerStats.isFile();
|
|
9
|
-
}
|
|
10
|
-
catch {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
const findTopmostGitRoot = async (startPath) => {
|
|
15
|
-
let currentPath = path.resolve(startPath);
|
|
16
|
-
let topmostGitRoot = null;
|
|
17
|
-
while (true) {
|
|
18
|
-
if (await hasGitMarker(currentPath)) {
|
|
19
|
-
topmostGitRoot = currentPath;
|
|
20
|
-
}
|
|
21
|
-
const parentPath = path.dirname(currentPath);
|
|
22
|
-
if (parentPath === currentPath) {
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
currentPath = parentPath;
|
|
26
|
-
}
|
|
27
|
-
return topmostGitRoot;
|
|
28
|
-
};
|
|
29
|
-
const addUniqueSource = (sources, seenRootDirs, source) => {
|
|
30
|
-
const normalizedRootDir = path.resolve(source.rootDir);
|
|
31
|
-
if (seenRootDirs.has(normalizedRootDir)) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
seenRootDirs.add(normalizedRootDir);
|
|
35
|
-
sources.push({ ...source, rootDir: normalizedRootDir });
|
|
36
|
-
};
|
|
4
|
+
import { addUniqueProviderSkillSource, findTopmostGitRoot, } from '../../../../shared/utils.js';
|
|
37
5
|
export class CodexSkillsProvider extends SkillsProvider {
|
|
38
6
|
constructor() {
|
|
39
7
|
super('codex');
|
|
@@ -42,7 +10,7 @@ export class CodexSkillsProvider extends SkillsProvider {
|
|
|
42
10
|
const sources = [];
|
|
43
11
|
const seenRootDirs = new Set();
|
|
44
12
|
const repoRoot = await findTopmostGitRoot(workspacePath);
|
|
45
|
-
|
|
13
|
+
addUniqueProviderSkillSource(sources, seenRootDirs, {
|
|
46
14
|
scope: 'repo',
|
|
47
15
|
rootDir: path.join(workspacePath, '.agents', 'skills'),
|
|
48
16
|
commandPrefix: '$',
|
|
@@ -50,28 +18,28 @@ export class CodexSkillsProvider extends SkillsProvider {
|
|
|
50
18
|
if (repoRoot) {
|
|
51
19
|
// Codex checks repository skills at the launch folder, one folder above it,
|
|
52
20
|
// and the topmost git root; these can collapse to the same directory.
|
|
53
|
-
|
|
21
|
+
addUniqueProviderSkillSource(sources, seenRootDirs, {
|
|
54
22
|
scope: 'repo',
|
|
55
23
|
rootDir: path.join(path.dirname(workspacePath), '.agents', 'skills'),
|
|
56
24
|
commandPrefix: '$',
|
|
57
25
|
});
|
|
58
|
-
|
|
26
|
+
addUniqueProviderSkillSource(sources, seenRootDirs, {
|
|
59
27
|
scope: 'repo',
|
|
60
28
|
rootDir: path.join(repoRoot, '.agents', 'skills'),
|
|
61
29
|
commandPrefix: '$',
|
|
62
30
|
});
|
|
63
31
|
}
|
|
64
|
-
|
|
32
|
+
addUniqueProviderSkillSource(sources, seenRootDirs, {
|
|
65
33
|
scope: 'user',
|
|
66
34
|
rootDir: path.join(os.homedir(), '.agents', 'skills'),
|
|
67
35
|
commandPrefix: '$',
|
|
68
36
|
});
|
|
69
|
-
|
|
37
|
+
addUniqueProviderSkillSource(sources, seenRootDirs, {
|
|
70
38
|
scope: 'admin',
|
|
71
39
|
rootDir: path.join('/etc', 'codex', 'skills'),
|
|
72
40
|
commandPrefix: '$',
|
|
73
41
|
});
|
|
74
|
-
|
|
42
|
+
addUniqueProviderSkillSource(sources, seenRootDirs, {
|
|
75
43
|
scope: 'system',
|
|
76
44
|
rootDir: path.join(os.homedir(), '.codex', 'skills', '.system'),
|
|
77
45
|
commandPrefix: '$',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-skills.provider.js","sourceRoot":"","sources":["../../../../../../server/modules/providers/list/codex/codex-skills.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"codex-skills.provider.js","sourceRoot":"","sources":["../../../../../../server/modules/providers/list/codex/codex-skills.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAEtF,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACrD;QACE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,aAAqB;QACnD,MAAM,OAAO,GAA0B,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAEzD,4BAA4B,CAAC,OAAO,EAAE,YAAY,EAAE;YAClD,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC;YACtD,aAAa,EAAE,GAAG;SACnB,CAAC,CAAC;QAEH,IAAI,QAAQ,EAAE,CAAC;YACb,4EAA4E;YAC5E,sEAAsE;YACtE,4BAA4B,CAAC,OAAO,EAAE,YAAY,EAAE;gBAClD,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC;gBACpE,aAAa,EAAE,GAAG;aACnB,CAAC,CAAC;YACH,4BAA4B,CAAC,OAAO,EAAE,YAAY,EAAE;gBAClD,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;gBACjD,aAAa,EAAE,GAAG;aACnB,CAAC,CAAC;QACL,CAAC;QAED,4BAA4B,CAAC,OAAO,EAAE,YAAY,EAAE;YAClD,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;YACrD,aAAa,EAAE,GAAG;SACnB,CAAC,CAAC;QACH,4BAA4B,CAAC,OAAO,EAAE,YAAY,EAAE;YAClD,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;YAC7C,aAAa,EAAE,GAAG;SACnB,CAAC,CAAC;QACH,4BAA4B,CAAC,OAAO,EAAE,YAAY,EAAE;YAClD,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YAC/D,aAAa,EAAE,GAAG;SACnB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { AbstractProvider } from '../../../../modules/providers/shared/base/abstract.provider.js';
|
|
2
2
|
import { CodexProviderAuth } from '../../../../modules/providers/list/codex/codex-auth.provider.js';
|
|
3
|
+
import { CodexProviderModels } from '../../../../modules/providers/list/codex/codex-models.provider.js';
|
|
3
4
|
import { CodexMcpProvider } from '../../../../modules/providers/list/codex/codex-mcp.provider.js';
|
|
4
5
|
import { CodexSessionSynchronizer } from '../../../../modules/providers/list/codex/codex-session-synchronizer.provider.js';
|
|
5
6
|
import { CodexSessionsProvider } from '../../../../modules/providers/list/codex/codex-sessions.provider.js';
|
|
6
7
|
import { CodexSkillsProvider } from '../../../../modules/providers/list/codex/codex-skills.provider.js';
|
|
7
8
|
export class CodexProvider extends AbstractProvider {
|
|
9
|
+
models = new CodexProviderModels();
|
|
8
10
|
mcp = new CodexMcpProvider();
|
|
9
11
|
auth = new CodexProviderAuth();
|
|
10
12
|
skills = new CodexSkillsProvider();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.provider.js","sourceRoot":"","sources":["../../../../../../server/modules/providers/list/codex/codex.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uEAAuE,CAAC;AACjH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.provider.js","sourceRoot":"","sources":["../../../../../../server/modules/providers/list/codex/codex.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uEAAuE,CAAC;AACjH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAS9F,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACxC,MAAM,GAAoB,IAAI,mBAAmB,EAAE,CAAC;IACpD,GAAG,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAC7B,IAAI,GAAkB,IAAI,iBAAiB,EAAE,CAAC;IAC9C,MAAM,GAAoB,IAAI,mBAAmB,EAAE,CAAC;IACpD,QAAQ,GAAsB,IAAI,qBAAqB,EAAE,CAAC;IAC1D,mBAAmB,GAAiC,IAAI,wBAAwB,EAAE,CAAC;IAE5F;QACE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF"}
|