@compilr-dev/sdk 0.1.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/LICENSE +21 -0
- package/dist/agent.d.ts +8 -0
- package/dist/agent.js +220 -0
- package/dist/config.d.ts +227 -0
- package/dist/config.js +4 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.js +99 -0
- package/dist/models/index.d.ts +7 -0
- package/dist/models/index.js +11 -0
- package/dist/models/model-registry.d.ts +118 -0
- package/dist/models/model-registry.js +621 -0
- package/dist/models/model-tiers.d.ts +36 -0
- package/dist/models/model-tiers.js +105 -0
- package/dist/models/providers.d.ts +90 -0
- package/dist/models/providers.js +295 -0
- package/dist/models/types.d.ts +28 -0
- package/dist/models/types.js +30 -0
- package/dist/models.d.ts +21 -0
- package/dist/models.js +73 -0
- package/dist/presets/coding.d.ts +21 -0
- package/dist/presets/coding.js +61 -0
- package/dist/presets/index.d.ts +11 -0
- package/dist/presets/index.js +32 -0
- package/dist/presets/read-only.d.ts +8 -0
- package/dist/presets/read-only.js +44 -0
- package/dist/presets/types.d.ts +30 -0
- package/dist/presets/types.js +4 -0
- package/dist/provider.d.ts +28 -0
- package/dist/provider.js +88 -0
- package/dist/team.d.ts +10 -0
- package/dist/team.js +168 -0
- package/dist/tools.d.ts +18 -0
- package/dist/tools.js +95 -0
- package/package.json +70 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Registry
|
|
3
|
+
*
|
|
4
|
+
* Defines supported models with metadata for each provider.
|
|
5
|
+
* Used for:
|
|
6
|
+
* - Model selection UI (list instead of free text)
|
|
7
|
+
* - Session restore strategy (based on thinking format)
|
|
8
|
+
* - Status indicators and warnings
|
|
9
|
+
* - Context window resolution
|
|
10
|
+
*/
|
|
11
|
+
import type { ProviderType } from '../config.js';
|
|
12
|
+
import type { ModelTier } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Thinking block format used by the model.
|
|
15
|
+
* Used to determine session restore strategy.
|
|
16
|
+
*/
|
|
17
|
+
export type ThinkingFormat = 'claude' | 'gemini-v2' | 'gemini-v3' | 'openai' | 'none';
|
|
18
|
+
/**
|
|
19
|
+
* Support status for a model.
|
|
20
|
+
*/
|
|
21
|
+
export type ModelStatus = 'supported' | 'experimental' | 'unsupported';
|
|
22
|
+
/**
|
|
23
|
+
* Model information for the registry.
|
|
24
|
+
*/
|
|
25
|
+
export interface ModelInfo {
|
|
26
|
+
/** Model ID as used in API calls */
|
|
27
|
+
id: string;
|
|
28
|
+
/** Display name for UI */
|
|
29
|
+
displayName: string;
|
|
30
|
+
/** Short description for UI (e.g., "Fast, low cost", "Balanced (recommended)") */
|
|
31
|
+
description: string;
|
|
32
|
+
/** Provider this model belongs to */
|
|
33
|
+
provider: ProviderType;
|
|
34
|
+
/** Default tier mapping (fast/balanced/powerful) - undefined if not a default */
|
|
35
|
+
defaultTier?: ModelTier;
|
|
36
|
+
/** Thinking block format this model uses */
|
|
37
|
+
thinkingFormat: ThinkingFormat;
|
|
38
|
+
/** Support status */
|
|
39
|
+
status: ModelStatus;
|
|
40
|
+
/** Notes shown in UI (e.g., why unsupported) */
|
|
41
|
+
notes?: string;
|
|
42
|
+
/** Context window size in tokens (for display) */
|
|
43
|
+
contextWindow?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Registry of known models with their metadata.
|
|
47
|
+
* Models are grouped by provider for easier maintenance.
|
|
48
|
+
*/
|
|
49
|
+
export declare const MODEL_REGISTRY: ModelInfo[];
|
|
50
|
+
/**
|
|
51
|
+
* Get all models for a specific provider.
|
|
52
|
+
*/
|
|
53
|
+
export declare function getModelsForProvider(provider: ProviderType): ModelInfo[];
|
|
54
|
+
/**
|
|
55
|
+
* Get models for a provider, sorted for display.
|
|
56
|
+
* Order: supported first, then by defaultTier (fast->balanced->powerful), then alphabetical.
|
|
57
|
+
*/
|
|
58
|
+
export declare function getModelsSortedForDisplay(provider: ProviderType): ModelInfo[];
|
|
59
|
+
/**
|
|
60
|
+
* Get model info by ID.
|
|
61
|
+
* Returns undefined for unknown models.
|
|
62
|
+
*/
|
|
63
|
+
export declare function getModelInfo(modelId: string): ModelInfo | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Check if a model is in the registry.
|
|
66
|
+
*/
|
|
67
|
+
export declare function isKnownModel(modelId: string): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Check if a model is supported.
|
|
70
|
+
* Returns false for unknown models (conservative default).
|
|
71
|
+
*/
|
|
72
|
+
export declare function isModelSupported(modelId: string): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Get the thinking format for a model.
|
|
75
|
+
* Returns 'none' for unknown models (safe default).
|
|
76
|
+
*/
|
|
77
|
+
export declare function getThinkingFormat(modelId: string): ThinkingFormat;
|
|
78
|
+
/**
|
|
79
|
+
* Get status indicator for UI display.
|
|
80
|
+
*/
|
|
81
|
+
export declare function getStatusIndicator(status: ModelStatus): string;
|
|
82
|
+
/**
|
|
83
|
+
* Get status label for UI display.
|
|
84
|
+
*/
|
|
85
|
+
export declare function getStatusLabel(status: ModelStatus): string;
|
|
86
|
+
/**
|
|
87
|
+
* Get the default model for a tier from the registry.
|
|
88
|
+
* Returns the first model with that defaultTier, or undefined if none.
|
|
89
|
+
*/
|
|
90
|
+
export declare function getDefaultModelForTier(provider: ProviderType, tier: ModelTier): ModelInfo | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Check if two models have compatible thinking formats for session restore.
|
|
93
|
+
* Compatible means we can restore without clearing history.
|
|
94
|
+
*/
|
|
95
|
+
export declare function areThinkingFormatsCompatible(fromModelId: string | undefined, toModelId: string): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Determine if session history should be cleared when switching models.
|
|
98
|
+
* Returns true if history must be cleared (incompatible), false if we can keep/strip.
|
|
99
|
+
*
|
|
100
|
+
* Note: Gemini v3 no longer requires clearing history since Session 119.
|
|
101
|
+
* The native @google/genai SDK handles thought signatures automatically.
|
|
102
|
+
*/
|
|
103
|
+
export declare function shouldClearHistoryOnModelChange(_fromModelId: string | undefined, _toModelId: string): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Get context window size for a model ID.
|
|
106
|
+
* Falls back to provider default if model not found or contextWindow not set.
|
|
107
|
+
*/
|
|
108
|
+
export declare function getModelContextWindow(modelId: string, provider?: ProviderType): number;
|
|
109
|
+
/**
|
|
110
|
+
* Get model display name by ID.
|
|
111
|
+
* Returns the model ID if not found in registry.
|
|
112
|
+
*/
|
|
113
|
+
export declare function getModelDisplayName(modelId: string): string;
|
|
114
|
+
/**
|
|
115
|
+
* Get model description by ID.
|
|
116
|
+
* Returns empty string if not found.
|
|
117
|
+
*/
|
|
118
|
+
export declare function getModelDescription(modelId: string): string;
|