@lssm/lib.ai-providers 0.0.0-canary-20251217052941 → 0.0.0-canary-20251217060433
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/dist/factory.d.ts +18 -0
- package/dist/index.d.ts +6 -0
- package/dist/legacy.d.ts +23 -0
- package/dist/models.d.ts +30 -0
- package/dist/types.d.ts +112 -0
- package/dist/validation.d.ts +34 -0
- package/package.json +9 -9
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Provider, ProviderAvailability, ProviderConfig } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/factory.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Create a provider from configuration
|
|
7
|
+
*/
|
|
8
|
+
declare function createProvider(config: ProviderConfig): Provider;
|
|
9
|
+
/**
|
|
10
|
+
* Create a provider from environment variables
|
|
11
|
+
*/
|
|
12
|
+
declare function createProviderFromEnv(): Provider;
|
|
13
|
+
/**
|
|
14
|
+
* Get all available providers with their status
|
|
15
|
+
*/
|
|
16
|
+
declare function getAvailableProviders(): ProviderAvailability[];
|
|
17
|
+
//#endregion
|
|
18
|
+
export { createProvider, createProviderFromEnv, getAvailableProviders };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { LegacyConfig, LegacyProviderName, ModelCapabilities, ModelInfo, Provider, ProviderAvailability, ProviderConfig, ProviderMode, ProviderName } from "./types.js";
|
|
2
|
+
import { createProvider, createProviderFromEnv, getAvailableProviders } from "./factory.js";
|
|
3
|
+
import { DEFAULT_MODELS, MODELS, getDefaultModel, getModelInfo, getModelsForProvider, getRecommendedModels } from "./models.js";
|
|
4
|
+
import { ValidationResult, getEnvVarName, hasCredentials, isOllamaRunning, listOllamaModels, validateProvider as validateProvider$1 } from "./validation.js";
|
|
5
|
+
import { getAIProvider, validateProvider } from "./legacy.js";
|
|
6
|
+
export { DEFAULT_MODELS, LegacyConfig, LegacyProviderName, MODELS, ModelCapabilities, ModelInfo, Provider, ProviderAvailability, ProviderConfig, ProviderMode, ProviderName, ValidationResult, createProvider, createProviderFromEnv, getAIProvider, getAvailableProviders, getDefaultModel, getEnvVarName, getModelInfo, getModelsForProvider, getRecommendedModels, hasCredentials, isOllamaRunning, listOllamaModels, validateProvider as validateLegacyProvider, validateProvider$1 as validateProvider };
|
package/dist/legacy.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { LegacyConfig } from "./types.js";
|
|
2
|
+
import { getRecommendedModels } from "./models.js";
|
|
3
|
+
import { LanguageModel } from "ai";
|
|
4
|
+
|
|
5
|
+
//#region src/legacy.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Get AI provider from legacy Config type
|
|
9
|
+
*
|
|
10
|
+
* @deprecated Use createProvider() instead
|
|
11
|
+
*/
|
|
12
|
+
declare function getAIProvider(config: LegacyConfig): LanguageModel;
|
|
13
|
+
/**
|
|
14
|
+
* Validate provider from legacy Config type
|
|
15
|
+
*
|
|
16
|
+
* @deprecated Use validateProvider() from './validation' instead
|
|
17
|
+
*/
|
|
18
|
+
declare function validateProvider(config: LegacyConfig): Promise<{
|
|
19
|
+
success: boolean;
|
|
20
|
+
error?: string;
|
|
21
|
+
}>;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { getAIProvider, getRecommendedModels, validateProvider };
|
package/dist/models.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ModelInfo, ProviderName } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/models.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Default models per provider
|
|
7
|
+
*/
|
|
8
|
+
declare const DEFAULT_MODELS: Record<ProviderName, string>;
|
|
9
|
+
/**
|
|
10
|
+
* All recommended models with metadata
|
|
11
|
+
*/
|
|
12
|
+
declare const MODELS: ModelInfo[];
|
|
13
|
+
/**
|
|
14
|
+
* Get models for a specific provider
|
|
15
|
+
*/
|
|
16
|
+
declare function getModelsForProvider(provider: ProviderName): ModelInfo[];
|
|
17
|
+
/**
|
|
18
|
+
* Get model info by ID
|
|
19
|
+
*/
|
|
20
|
+
declare function getModelInfo(modelId: string): ModelInfo | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Get recommended models for a provider (legacy format)
|
|
23
|
+
*/
|
|
24
|
+
declare function getRecommendedModels(provider: ProviderName | 'claude' | 'custom'): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Get default model for a provider
|
|
27
|
+
*/
|
|
28
|
+
declare function getDefaultModel(provider: ProviderName): string;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { DEFAULT_MODELS, MODELS, getDefaultModel, getModelInfo, getModelsForProvider, getRecommendedModels };
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { LanguageModel } from "ai";
|
|
2
|
+
|
|
3
|
+
//#region src/types.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Supported AI providers
|
|
7
|
+
*/
|
|
8
|
+
type ProviderName = 'ollama' | 'openai' | 'anthropic' | 'mistral' | 'gemini';
|
|
9
|
+
/**
|
|
10
|
+
* Legacy provider names (for backwards compatibility)
|
|
11
|
+
*/
|
|
12
|
+
type LegacyProviderName = 'claude' | 'openai' | 'ollama' | 'custom';
|
|
13
|
+
/**
|
|
14
|
+
* Provider mode determines how API keys are resolved
|
|
15
|
+
*/
|
|
16
|
+
type ProviderMode = 'local' | 'byok' | 'managed';
|
|
17
|
+
/**
|
|
18
|
+
* Configuration for creating a provider
|
|
19
|
+
*/
|
|
20
|
+
interface ProviderConfig {
|
|
21
|
+
/** Which provider to use */
|
|
22
|
+
provider: ProviderName;
|
|
23
|
+
/** Specific model to use (optional, uses provider default) */
|
|
24
|
+
model?: string;
|
|
25
|
+
/** API key for BYOK mode */
|
|
26
|
+
apiKey?: string;
|
|
27
|
+
/** Custom base URL (for Ollama or custom endpoints) */
|
|
28
|
+
baseUrl?: string;
|
|
29
|
+
/** API proxy URL for managed mode */
|
|
30
|
+
proxyUrl?: string;
|
|
31
|
+
/** Organization/tenant ID for managed mode */
|
|
32
|
+
organizationId?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Model capability flags
|
|
36
|
+
*/
|
|
37
|
+
interface ModelCapabilities {
|
|
38
|
+
/** Supports image/vision input */
|
|
39
|
+
vision: boolean;
|
|
40
|
+
/** Supports tool/function calling */
|
|
41
|
+
tools: boolean;
|
|
42
|
+
/** Supports extended thinking/reasoning */
|
|
43
|
+
reasoning: boolean;
|
|
44
|
+
/** Supports streaming */
|
|
45
|
+
streaming: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Model information
|
|
49
|
+
*/
|
|
50
|
+
interface ModelInfo {
|
|
51
|
+
/** Model identifier */
|
|
52
|
+
id: string;
|
|
53
|
+
/** Human-readable name */
|
|
54
|
+
name: string;
|
|
55
|
+
/** Provider this model belongs to */
|
|
56
|
+
provider: ProviderName;
|
|
57
|
+
/** Context window size in tokens */
|
|
58
|
+
contextWindow: number;
|
|
59
|
+
/** Model capabilities */
|
|
60
|
+
capabilities: ModelCapabilities;
|
|
61
|
+
/** Approximate cost per million tokens (input, output) */
|
|
62
|
+
costPerMillion?: {
|
|
63
|
+
input: number;
|
|
64
|
+
output: number;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* AI Provider interface
|
|
69
|
+
*/
|
|
70
|
+
interface Provider {
|
|
71
|
+
/** Provider name */
|
|
72
|
+
readonly name: ProviderName;
|
|
73
|
+
/** Current model ID */
|
|
74
|
+
readonly model: string;
|
|
75
|
+
/** Provider mode */
|
|
76
|
+
readonly mode: ProviderMode;
|
|
77
|
+
/**
|
|
78
|
+
* Get the underlying AI SDK language model
|
|
79
|
+
*/
|
|
80
|
+
getModel(): LanguageModel;
|
|
81
|
+
/**
|
|
82
|
+
* List available models for this provider
|
|
83
|
+
*/
|
|
84
|
+
listModels(): Promise<ModelInfo[]>;
|
|
85
|
+
/**
|
|
86
|
+
* Validate the provider configuration/credentials
|
|
87
|
+
*/
|
|
88
|
+
validate(): Promise<{
|
|
89
|
+
valid: boolean;
|
|
90
|
+
error?: string;
|
|
91
|
+
}>;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Provider availability info
|
|
95
|
+
*/
|
|
96
|
+
interface ProviderAvailability {
|
|
97
|
+
provider: ProviderName;
|
|
98
|
+
available: boolean;
|
|
99
|
+
mode: ProviderMode;
|
|
100
|
+
reason?: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Legacy Config type for backwards compatibility
|
|
104
|
+
* This matches the Config type from contractspec-workspace
|
|
105
|
+
*/
|
|
106
|
+
interface LegacyConfig {
|
|
107
|
+
aiProvider: LegacyProviderName;
|
|
108
|
+
aiModel?: string;
|
|
109
|
+
customEndpoint?: string;
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
export { LegacyConfig, LegacyProviderName, ModelCapabilities, ModelInfo, Provider, ProviderAvailability, ProviderConfig, ProviderMode, ProviderName };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ProviderConfig, ProviderName } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/validation.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Validation result
|
|
7
|
+
*/
|
|
8
|
+
interface ValidationResult {
|
|
9
|
+
valid: boolean;
|
|
10
|
+
error?: string;
|
|
11
|
+
warnings?: string[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Validate a provider configuration
|
|
15
|
+
*/
|
|
16
|
+
declare function validateProvider(config: ProviderConfig): Promise<ValidationResult>;
|
|
17
|
+
/**
|
|
18
|
+
* Check if a provider has required credentials
|
|
19
|
+
*/
|
|
20
|
+
declare function hasCredentials(provider: ProviderName): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Get the environment variable name for a provider's API key
|
|
23
|
+
*/
|
|
24
|
+
declare function getEnvVarName(provider: ProviderName): string | null;
|
|
25
|
+
/**
|
|
26
|
+
* Check if Ollama is running
|
|
27
|
+
*/
|
|
28
|
+
declare function isOllamaRunning(baseUrl?: string): Promise<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* List available Ollama models
|
|
31
|
+
*/
|
|
32
|
+
declare function listOllamaModels(baseUrl?: string): Promise<string[]>;
|
|
33
|
+
//#endregion
|
|
34
|
+
export { ValidationResult, getEnvVarName, hasCredentials, isOllamaRunning, listOllamaModels, validateProvider };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lssm/lib.ai-providers",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-20251217060433",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -32,18 +32,18 @@
|
|
|
32
32
|
"zod": "^4.1.13"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@lssm/tool.tsdown": "0.0.0-canary-
|
|
36
|
-
"@lssm/tool.typescript": "0.0.0-canary-
|
|
35
|
+
"@lssm/tool.tsdown": "0.0.0-canary-20251217060433",
|
|
36
|
+
"@lssm/tool.typescript": "0.0.0-canary-20251217060433",
|
|
37
37
|
"tsdown": "^0.17.4",
|
|
38
38
|
"typescript": "^5.9.3"
|
|
39
39
|
},
|
|
40
40
|
"exports": {
|
|
41
|
-
".": "./
|
|
42
|
-
"./factory": "./
|
|
43
|
-
"./legacy": "./
|
|
44
|
-
"./models": "./
|
|
45
|
-
"./types": "./
|
|
46
|
-
"./validation": "./
|
|
41
|
+
".": "./dist/index.js",
|
|
42
|
+
"./factory": "./dist/factory.js",
|
|
43
|
+
"./legacy": "./dist/legacy.js",
|
|
44
|
+
"./models": "./dist/models.js",
|
|
45
|
+
"./types": "./dist/types.js",
|
|
46
|
+
"./validation": "./dist/validation.js",
|
|
47
47
|
"./*": "./*"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|