claude-code-workflow 6.2.7 → 6.3.0
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/.claude/CLAUDE.md +16 -1
- package/.claude/workflows/cli-templates/protocols/analysis-protocol.md +11 -4
- package/.claude/workflows/cli-templates/protocols/write-protocol.md +10 -75
- package/.claude/workflows/cli-tools-usage.md +14 -24
- package/.codex/AGENTS.md +51 -1
- package/.codex/prompts/compact.md +378 -0
- package/.gemini/GEMINI.md +57 -20
- package/ccw/dist/cli.d.ts.map +1 -1
- package/ccw/dist/cli.js +21 -8
- package/ccw/dist/cli.js.map +1 -1
- package/ccw/dist/commands/cli.d.ts +2 -0
- package/ccw/dist/commands/cli.d.ts.map +1 -1
- package/ccw/dist/commands/cli.js +129 -8
- package/ccw/dist/commands/cli.js.map +1 -1
- package/ccw/dist/commands/hook.d.ts.map +1 -1
- package/ccw/dist/commands/hook.js +3 -2
- package/ccw/dist/commands/hook.js.map +1 -1
- package/ccw/dist/config/litellm-api-config-manager.d.ts +180 -0
- package/ccw/dist/config/litellm-api-config-manager.d.ts.map +1 -0
- package/ccw/dist/config/litellm-api-config-manager.js +770 -0
- package/ccw/dist/config/litellm-api-config-manager.js.map +1 -0
- package/ccw/dist/config/provider-models.d.ts +73 -0
- package/ccw/dist/config/provider-models.d.ts.map +1 -0
- package/ccw/dist/config/provider-models.js +172 -0
- package/ccw/dist/config/provider-models.js.map +1 -0
- package/ccw/dist/core/cache-manager.d.ts.map +1 -1
- package/ccw/dist/core/cache-manager.js +3 -5
- package/ccw/dist/core/cache-manager.js.map +1 -1
- package/ccw/dist/core/dashboard-generator.d.ts.map +1 -1
- package/ccw/dist/core/dashboard-generator.js +3 -1
- package/ccw/dist/core/dashboard-generator.js.map +1 -1
- package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/cli-routes.js +169 -0
- package/ccw/dist/core/routes/cli-routes.js.map +1 -1
- package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/codexlens-routes.js +234 -18
- package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
- package/ccw/dist/core/routes/hooks-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/hooks-routes.js +30 -32
- package/ccw/dist/core/routes/hooks-routes.js.map +1 -1
- package/ccw/dist/core/routes/litellm-api-routes.d.ts +21 -0
- package/ccw/dist/core/routes/litellm-api-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/litellm-api-routes.js +780 -0
- package/ccw/dist/core/routes/litellm-api-routes.js.map +1 -0
- package/ccw/dist/core/routes/litellm-routes.d.ts +20 -0
- package/ccw/dist/core/routes/litellm-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/litellm-routes.js +85 -0
- package/ccw/dist/core/routes/litellm-routes.js.map +1 -0
- package/ccw/dist/core/routes/mcp-routes.js +2 -2
- package/ccw/dist/core/routes/mcp-routes.js.map +1 -1
- package/ccw/dist/core/routes/status-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/status-routes.js +39 -0
- package/ccw/dist/core/routes/status-routes.js.map +1 -1
- package/ccw/dist/core/routes/system-routes.js +1 -1
- package/ccw/dist/core/routes/system-routes.js.map +1 -1
- package/ccw/dist/core/server.d.ts.map +1 -1
- package/ccw/dist/core/server.js +15 -1
- package/ccw/dist/core/server.js.map +1 -1
- package/ccw/dist/mcp-server/index.js +1 -1
- package/ccw/dist/mcp-server/index.js.map +1 -1
- package/ccw/dist/tools/claude-cli-tools.d.ts +82 -0
- package/ccw/dist/tools/claude-cli-tools.d.ts.map +1 -0
- package/ccw/dist/tools/claude-cli-tools.js +216 -0
- package/ccw/dist/tools/claude-cli-tools.js.map +1 -0
- package/ccw/dist/tools/cli-executor.d.ts.map +1 -1
- package/ccw/dist/tools/cli-executor.js +76 -14
- package/ccw/dist/tools/cli-executor.js.map +1 -1
- package/ccw/dist/tools/codex-lens.d.ts +9 -2
- package/ccw/dist/tools/codex-lens.d.ts.map +1 -1
- package/ccw/dist/tools/codex-lens.js +114 -9
- package/ccw/dist/tools/codex-lens.js.map +1 -1
- package/ccw/dist/tools/context-cache-store.d.ts +136 -0
- package/ccw/dist/tools/context-cache-store.d.ts.map +1 -0
- package/ccw/dist/tools/context-cache-store.js +256 -0
- package/ccw/dist/tools/context-cache-store.js.map +1 -0
- package/ccw/dist/tools/context-cache.d.ts +56 -0
- package/ccw/dist/tools/context-cache.d.ts.map +1 -0
- package/ccw/dist/tools/context-cache.js +294 -0
- package/ccw/dist/tools/context-cache.js.map +1 -0
- package/ccw/dist/tools/core-memory.d.ts.map +1 -1
- package/ccw/dist/tools/core-memory.js +33 -19
- package/ccw/dist/tools/core-memory.js.map +1 -1
- package/ccw/dist/tools/index.d.ts.map +1 -1
- package/ccw/dist/tools/index.js +2 -0
- package/ccw/dist/tools/index.js.map +1 -1
- package/ccw/dist/tools/litellm-client.d.ts +85 -0
- package/ccw/dist/tools/litellm-client.d.ts.map +1 -0
- package/ccw/dist/tools/litellm-client.js +188 -0
- package/ccw/dist/tools/litellm-client.js.map +1 -0
- package/ccw/dist/tools/litellm-executor.d.ts +34 -0
- package/ccw/dist/tools/litellm-executor.d.ts.map +1 -0
- package/ccw/dist/tools/litellm-executor.js +192 -0
- package/ccw/dist/tools/litellm-executor.js.map +1 -0
- package/ccw/dist/tools/pattern-parser.d.ts +55 -0
- package/ccw/dist/tools/pattern-parser.d.ts.map +1 -0
- package/ccw/dist/tools/pattern-parser.js +237 -0
- package/ccw/dist/tools/pattern-parser.js.map +1 -0
- package/ccw/dist/tools/smart-search.d.ts +1 -0
- package/ccw/dist/tools/smart-search.d.ts.map +1 -1
- package/ccw/dist/tools/smart-search.js +117 -41
- package/ccw/dist/tools/smart-search.js.map +1 -1
- package/ccw/dist/types/litellm-api-config.d.ts +294 -0
- package/ccw/dist/types/litellm-api-config.d.ts.map +1 -0
- package/ccw/dist/types/litellm-api-config.js +8 -0
- package/ccw/dist/types/litellm-api-config.js.map +1 -0
- package/ccw/src/cli.ts +258 -244
- package/ccw/src/commands/cli.ts +153 -9
- package/ccw/src/commands/hook.ts +3 -2
- package/ccw/src/config/.litellm-api-config-manager.ts.2025-12-23T11-57-43-727Z.bak +441 -0
- package/ccw/src/config/litellm-api-config-manager.ts +1012 -0
- package/ccw/src/config/provider-models.ts +222 -0
- package/ccw/src/core/cache-manager.ts +292 -294
- package/ccw/src/core/dashboard-generator.ts +3 -1
- package/ccw/src/core/routes/cli-routes.ts +192 -0
- package/ccw/src/core/routes/codexlens-routes.ts +241 -19
- package/ccw/src/core/routes/hooks-routes.ts +399 -405
- package/ccw/src/core/routes/litellm-api-routes.ts +930 -0
- package/ccw/src/core/routes/litellm-routes.ts +107 -0
- package/ccw/src/core/routes/mcp-routes.ts +1271 -1271
- package/ccw/src/core/routes/status-routes.ts +51 -0
- package/ccw/src/core/routes/system-routes.ts +1 -1
- package/ccw/src/core/server.ts +15 -1
- package/ccw/src/mcp-server/index.ts +1 -1
- package/ccw/src/templates/dashboard-css/12-cli-legacy.css +44 -0
- package/ccw/src/templates/dashboard-css/31-api-settings.css +2265 -0
- package/ccw/src/templates/dashboard-js/components/cli-history.js +15 -8
- package/ccw/src/templates/dashboard-js/components/cli-status.js +323 -9
- package/ccw/src/templates/dashboard-js/components/navigation.js +329 -313
- package/ccw/src/templates/dashboard-js/i18n.js +583 -1
- package/ccw/src/templates/dashboard-js/views/api-settings.js +3362 -0
- package/ccw/src/templates/dashboard-js/views/cli-manager.js +199 -24
- package/ccw/src/templates/dashboard-js/views/codexlens-manager.js +1265 -27
- package/ccw/src/templates/dashboard.html +840 -831
- package/ccw/src/tools/claude-cli-tools.ts +300 -0
- package/ccw/src/tools/cli-executor.ts +83 -14
- package/ccw/src/tools/codex-lens.ts +146 -9
- package/ccw/src/tools/context-cache-store.ts +368 -0
- package/ccw/src/tools/context-cache.ts +393 -0
- package/ccw/src/tools/core-memory.ts +33 -19
- package/ccw/src/tools/index.ts +2 -0
- package/ccw/src/tools/litellm-client.ts +246 -0
- package/ccw/src/tools/litellm-executor.ts +241 -0
- package/ccw/src/tools/pattern-parser.ts +329 -0
- package/ccw/src/tools/smart-search.ts +142 -41
- package/ccw/src/types/litellm-api-config.ts +402 -0
- package/ccw-litellm/README.md +180 -0
- package/ccw-litellm/pyproject.toml +35 -0
- package/ccw-litellm/src/ccw_litellm/__init__.py +47 -0
- package/ccw-litellm/src/ccw_litellm/__pycache__/__init__.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/__pycache__/cli.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/cli.py +108 -0
- package/ccw-litellm/src/ccw_litellm/clients/__init__.py +12 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/__init__.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_embedder.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_llm.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/litellm_embedder.py +251 -0
- package/ccw-litellm/src/ccw_litellm/clients/litellm_llm.py +165 -0
- package/ccw-litellm/src/ccw_litellm/config/__init__.py +22 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/__init__.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/loader.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/models.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/loader.py +316 -0
- package/ccw-litellm/src/ccw_litellm/config/models.py +130 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__init__.py +14 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/__init__.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/embedder.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/llm.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/embedder.py +52 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/llm.py +45 -0
- package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/commands.py +378 -23
- package/codex-lens/src/codexlens/cli/embedding_manager.py +660 -56
- package/codex-lens/src/codexlens/cli/model_manager.py +31 -18
- package/codex-lens/src/codexlens/cli/output.py +12 -1
- package/codex-lens/src/codexlens/config.py +93 -0
- package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/chain_search.py +6 -2
- package/codex-lens/src/codexlens/search/hybrid_search.py +44 -21
- package/codex-lens/src/codexlens/search/ranking.py +1 -1
- package/codex-lens/src/codexlens/semantic/__init__.py +42 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/base.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/factory.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/gpu_support.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/litellm_embedder.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/base.py +61 -0
- package/codex-lens/src/codexlens/semantic/chunker.py +43 -20
- package/codex-lens/src/codexlens/semantic/embedder.py +60 -13
- package/codex-lens/src/codexlens/semantic/factory.py +98 -0
- package/codex-lens/src/codexlens/semantic/gpu_support.py +225 -3
- package/codex-lens/src/codexlens/semantic/litellm_embedder.py +144 -0
- package/codex-lens/src/codexlens/semantic/rotational_embedder.py +434 -0
- package/codex-lens/src/codexlens/semantic/vector_store.py +33 -8
- package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_004_dual_fts.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/path_mapper.py +27 -1
- package/package.json +15 -5
- package/.codex/prompts.zip +0 -0
- package/ccw/package.json +0 -65
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Model Presets
|
|
3
|
+
*
|
|
4
|
+
* Predefined model information for each supported LLM provider.
|
|
5
|
+
* Used for UI dropdowns and validation.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ProviderType } from '../types/litellm-api-config.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Model information metadata
|
|
12
|
+
*/
|
|
13
|
+
export interface ModelInfo {
|
|
14
|
+
/** Model identifier (used in API calls) */
|
|
15
|
+
id: string;
|
|
16
|
+
|
|
17
|
+
/** Human-readable display name */
|
|
18
|
+
name: string;
|
|
19
|
+
|
|
20
|
+
/** Context window size in tokens */
|
|
21
|
+
contextWindow: number;
|
|
22
|
+
|
|
23
|
+
/** Whether this model supports prompt caching */
|
|
24
|
+
supportsCaching: boolean;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Embedding model information metadata
|
|
29
|
+
*/
|
|
30
|
+
export interface EmbeddingModelInfo {
|
|
31
|
+
/** Model identifier (used in API calls) */
|
|
32
|
+
id: string;
|
|
33
|
+
|
|
34
|
+
/** Human-readable display name */
|
|
35
|
+
name: string;
|
|
36
|
+
|
|
37
|
+
/** Embedding dimensions */
|
|
38
|
+
dimensions: number;
|
|
39
|
+
|
|
40
|
+
/** Maximum input tokens */
|
|
41
|
+
maxTokens: number;
|
|
42
|
+
|
|
43
|
+
/** Provider identifier */
|
|
44
|
+
provider: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Predefined models for each API format
|
|
50
|
+
* Used for UI selection and validation
|
|
51
|
+
* Note: Most providers use OpenAI-compatible format
|
|
52
|
+
*/
|
|
53
|
+
export const PROVIDER_MODELS: Record<ProviderType, ModelInfo[]> = {
|
|
54
|
+
// OpenAI-compatible format (used by OpenAI, DeepSeek, Ollama, etc.)
|
|
55
|
+
openai: [
|
|
56
|
+
{
|
|
57
|
+
id: 'gpt-4o',
|
|
58
|
+
name: 'GPT-4o',
|
|
59
|
+
contextWindow: 128000,
|
|
60
|
+
supportsCaching: true
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: 'gpt-4o-mini',
|
|
64
|
+
name: 'GPT-4o Mini',
|
|
65
|
+
contextWindow: 128000,
|
|
66
|
+
supportsCaching: true
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 'o1',
|
|
70
|
+
name: 'O1',
|
|
71
|
+
contextWindow: 200000,
|
|
72
|
+
supportsCaching: true
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: 'deepseek-chat',
|
|
76
|
+
name: 'DeepSeek Chat',
|
|
77
|
+
contextWindow: 64000,
|
|
78
|
+
supportsCaching: false
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: 'deepseek-coder',
|
|
82
|
+
name: 'DeepSeek Coder',
|
|
83
|
+
contextWindow: 64000,
|
|
84
|
+
supportsCaching: false
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: 'llama3.2',
|
|
88
|
+
name: 'Llama 3.2',
|
|
89
|
+
contextWindow: 128000,
|
|
90
|
+
supportsCaching: false
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
id: 'qwen2.5-coder',
|
|
94
|
+
name: 'Qwen 2.5 Coder',
|
|
95
|
+
contextWindow: 32000,
|
|
96
|
+
supportsCaching: false
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
|
|
100
|
+
// Anthropic format
|
|
101
|
+
anthropic: [
|
|
102
|
+
{
|
|
103
|
+
id: 'claude-sonnet-4-20250514',
|
|
104
|
+
name: 'Claude Sonnet 4',
|
|
105
|
+
contextWindow: 200000,
|
|
106
|
+
supportsCaching: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
id: 'claude-3-5-sonnet-20241022',
|
|
110
|
+
name: 'Claude 3.5 Sonnet',
|
|
111
|
+
contextWindow: 200000,
|
|
112
|
+
supportsCaching: true
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
id: 'claude-3-5-haiku-20241022',
|
|
116
|
+
name: 'Claude 3.5 Haiku',
|
|
117
|
+
contextWindow: 200000,
|
|
118
|
+
supportsCaching: true
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: 'claude-3-opus-20240229',
|
|
122
|
+
name: 'Claude 3 Opus',
|
|
123
|
+
contextWindow: 200000,
|
|
124
|
+
supportsCaching: false
|
|
125
|
+
}
|
|
126
|
+
],
|
|
127
|
+
|
|
128
|
+
// Custom format
|
|
129
|
+
custom: [
|
|
130
|
+
{
|
|
131
|
+
id: 'custom-model',
|
|
132
|
+
name: 'Custom Model',
|
|
133
|
+
contextWindow: 128000,
|
|
134
|
+
supportsCaching: false
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Get models for a specific provider
|
|
141
|
+
* @param providerType - Provider type to get models for
|
|
142
|
+
* @returns Array of model information
|
|
143
|
+
*/
|
|
144
|
+
export function getModelsForProvider(providerType: ProviderType): ModelInfo[] {
|
|
145
|
+
return PROVIDER_MODELS[providerType] || [];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Predefined embedding models for each API format
|
|
150
|
+
* Used for UI selection and validation
|
|
151
|
+
*/
|
|
152
|
+
export const EMBEDDING_MODELS: Record<ProviderType, EmbeddingModelInfo[]> = {
|
|
153
|
+
// OpenAI embedding models
|
|
154
|
+
openai: [
|
|
155
|
+
{
|
|
156
|
+
id: 'text-embedding-3-small',
|
|
157
|
+
name: 'Text Embedding 3 Small',
|
|
158
|
+
dimensions: 1536,
|
|
159
|
+
maxTokens: 8191,
|
|
160
|
+
provider: 'openai'
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
id: 'text-embedding-3-large',
|
|
164
|
+
name: 'Text Embedding 3 Large',
|
|
165
|
+
dimensions: 3072,
|
|
166
|
+
maxTokens: 8191,
|
|
167
|
+
provider: 'openai'
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
id: 'text-embedding-ada-002',
|
|
171
|
+
name: 'Ada 002',
|
|
172
|
+
dimensions: 1536,
|
|
173
|
+
maxTokens: 8191,
|
|
174
|
+
provider: 'openai'
|
|
175
|
+
}
|
|
176
|
+
],
|
|
177
|
+
|
|
178
|
+
// Anthropic doesn't have embedding models
|
|
179
|
+
anthropic: [],
|
|
180
|
+
|
|
181
|
+
// Custom embedding models
|
|
182
|
+
custom: [
|
|
183
|
+
{
|
|
184
|
+
id: 'custom-embedding',
|
|
185
|
+
name: 'Custom Embedding',
|
|
186
|
+
dimensions: 1536,
|
|
187
|
+
maxTokens: 8192,
|
|
188
|
+
provider: 'custom'
|
|
189
|
+
}
|
|
190
|
+
]
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Get embedding models for a specific provider
|
|
195
|
+
* @param providerType - Provider type to get embedding models for
|
|
196
|
+
* @returns Array of embedding model information
|
|
197
|
+
*/
|
|
198
|
+
export function getEmbeddingModelsForProvider(providerType: ProviderType): EmbeddingModelInfo[] {
|
|
199
|
+
return EMBEDDING_MODELS[providerType] || [];
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Get model information by ID within a provider
|
|
205
|
+
* @param providerType - Provider type
|
|
206
|
+
* @param modelId - Model identifier
|
|
207
|
+
* @returns Model information or undefined if not found
|
|
208
|
+
*/
|
|
209
|
+
export function getModelInfo(providerType: ProviderType, modelId: string): ModelInfo | undefined {
|
|
210
|
+
const models = PROVIDER_MODELS[providerType] || [];
|
|
211
|
+
return models.find(m => m.id === modelId);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Validate if a model ID is supported by a provider
|
|
216
|
+
* @param providerType - Provider type
|
|
217
|
+
* @param modelId - Model identifier to validate
|
|
218
|
+
* @returns true if model is valid for provider
|
|
219
|
+
*/
|
|
220
|
+
export function isValidModel(providerType: ProviderType, modelId: string): boolean {
|
|
221
|
+
return getModelInfo(providerType, modelId) !== undefined;
|
|
222
|
+
}
|