learngraph 0.5.0 → 0.7.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/dist/cjs/api/routes/analytics.js +288 -0
- package/dist/cjs/api/routes/analytics.js.map +1 -0
- package/dist/cjs/api/routes/assessments.js +269 -0
- package/dist/cjs/api/routes/assessments.js.map +1 -0
- package/dist/cjs/api/routes/curriculum.js +345 -0
- package/dist/cjs/api/routes/curriculum.js.map +1 -0
- package/dist/cjs/api/routes/edges.js +162 -0
- package/dist/cjs/api/routes/edges.js.map +1 -0
- package/dist/cjs/api/routes/explore.js +224 -0
- package/dist/cjs/api/routes/explore.js.map +1 -0
- package/dist/cjs/api/routes/learners.js +324 -0
- package/dist/cjs/api/routes/learners.js.map +1 -0
- package/dist/cjs/api/routes/me.js +404 -0
- package/dist/cjs/api/routes/me.js.map +1 -0
- package/dist/cjs/api/routes/skills.js +319 -0
- package/dist/cjs/api/routes/skills.js.map +1 -0
- package/dist/cjs/api/server.js +185 -0
- package/dist/cjs/api/server.js.map +1 -0
- package/dist/cjs/api/types.js +10 -0
- package/dist/cjs/api/types.js.map +1 -0
- package/dist/cjs/assessment/adaptive.js +390 -0
- package/dist/cjs/assessment/adaptive.js.map +1 -0
- package/dist/cjs/assessment/bkt.js +362 -0
- package/dist/cjs/assessment/bkt.js.map +1 -0
- package/dist/cjs/assessment/index.js +54 -0
- package/dist/cjs/assessment/index.js.map +1 -0
- package/dist/cjs/assessment/irt.js +420 -0
- package/dist/cjs/assessment/irt.js.map +1 -0
- package/dist/cjs/assessment/mastery-engine.js +411 -0
- package/dist/cjs/assessment/mastery-engine.js.map +1 -0
- package/dist/cjs/components/LearningPathView.js +320 -0
- package/dist/cjs/components/LearningPathView.js.map +1 -0
- package/dist/cjs/components/ProgressDashboard.js +308 -0
- package/dist/cjs/components/ProgressDashboard.js.map +1 -0
- package/dist/cjs/components/SkillCard.js +264 -0
- package/dist/cjs/components/SkillCard.js.map +1 -0
- package/dist/cjs/components/SkillExplorer.js +401 -0
- package/dist/cjs/components/SkillExplorer.js.map +1 -0
- package/dist/cjs/components/SkillGraph.js +435 -0
- package/dist/cjs/components/SkillGraph.js.map +1 -0
- package/dist/cjs/components/hooks.js +510 -0
- package/dist/cjs/components/hooks.js.map +1 -0
- package/dist/cjs/components/index.js +77 -0
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/cjs/components/types.js +34 -0
- package/dist/cjs/components/types.js.map +1 -0
- package/dist/cjs/index.js +35 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/llm/adapters/anthropic.js +91 -3
- package/dist/cjs/llm/adapters/anthropic.js.map +1 -1
- package/dist/cjs/llm/adapters/gemini.js +101 -8
- package/dist/cjs/llm/adapters/gemini.js.map +1 -1
- package/dist/cjs/llm/adapters/index.js +42 -1
- package/dist/cjs/llm/adapters/index.js.map +1 -1
- package/dist/cjs/llm/adapters/ollama.js +120 -3
- package/dist/cjs/llm/adapters/ollama.js.map +1 -1
- package/dist/cjs/llm/adapters/openai.js +108 -2
- package/dist/cjs/llm/adapters/openai.js.map +1 -1
- package/dist/cjs/mcp/cli.js +302 -0
- package/dist/cjs/mcp/cli.js.map +1 -0
- package/dist/cjs/mcp/index.js +79 -0
- package/dist/cjs/mcp/index.js.map +1 -0
- package/dist/cjs/mcp/prompts.js +425 -0
- package/dist/cjs/mcp/prompts.js.map +1 -0
- package/dist/cjs/mcp/resources.js +371 -0
- package/dist/cjs/mcp/resources.js.map +1 -0
- package/dist/cjs/mcp/server.js +410 -0
- package/dist/cjs/mcp/server.js.map +1 -0
- package/dist/cjs/mcp/tools.js +612 -0
- package/dist/cjs/mcp/tools.js.map +1 -0
- package/dist/cjs/mcp/types.js +10 -0
- package/dist/cjs/mcp/types.js.map +1 -0
- package/dist/cjs/types/assessment.js +46 -0
- package/dist/cjs/types/assessment.js.map +1 -0
- package/dist/cjs/types/bloom.js +12 -1
- package/dist/cjs/types/bloom.js.map +1 -1
- package/dist/cjs/types/index.js +7 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/esm/api/routes/analytics.js +285 -0
- package/dist/esm/api/routes/analytics.js.map +1 -0
- package/dist/esm/api/routes/assessments.js +266 -0
- package/dist/esm/api/routes/assessments.js.map +1 -0
- package/dist/esm/api/routes/curriculum.js +342 -0
- package/dist/esm/api/routes/curriculum.js.map +1 -0
- package/dist/esm/api/routes/edges.js +159 -0
- package/dist/esm/api/routes/edges.js.map +1 -0
- package/dist/esm/api/routes/explore.js +221 -0
- package/dist/esm/api/routes/explore.js.map +1 -0
- package/dist/esm/api/routes/learners.js +321 -0
- package/dist/esm/api/routes/learners.js.map +1 -0
- package/dist/esm/api/routes/me.js +401 -0
- package/dist/esm/api/routes/me.js.map +1 -0
- package/dist/esm/api/routes/skills.js +316 -0
- package/dist/esm/api/routes/skills.js.map +1 -0
- package/dist/esm/api/server.js +179 -0
- package/dist/esm/api/server.js.map +1 -0
- package/dist/esm/api/types.js +9 -0
- package/dist/esm/api/types.js.map +1 -0
- package/dist/esm/assessment/adaptive.js +384 -0
- package/dist/esm/assessment/adaptive.js.map +1 -0
- package/dist/esm/assessment/bkt.js +354 -0
- package/dist/esm/assessment/bkt.js.map +1 -0
- package/dist/esm/assessment/index.js +21 -0
- package/dist/esm/assessment/index.js.map +1 -0
- package/dist/esm/assessment/irt.js +406 -0
- package/dist/esm/assessment/irt.js.map +1 -0
- package/dist/esm/assessment/mastery-engine.js +406 -0
- package/dist/esm/assessment/mastery-engine.js.map +1 -0
- package/dist/esm/components/LearningPathView.js +316 -0
- package/dist/esm/components/LearningPathView.js.map +1 -0
- package/dist/esm/components/ProgressDashboard.js +304 -0
- package/dist/esm/components/ProgressDashboard.js.map +1 -0
- package/dist/esm/components/SkillCard.js +260 -0
- package/dist/esm/components/SkillCard.js.map +1 -0
- package/dist/esm/components/SkillExplorer.js +397 -0
- package/dist/esm/components/SkillExplorer.js.map +1 -0
- package/dist/esm/components/SkillGraph.js +398 -0
- package/dist/esm/components/SkillGraph.js.map +1 -0
- package/dist/esm/components/hooks.js +502 -0
- package/dist/esm/components/hooks.js.map +1 -0
- package/dist/esm/components/index.js +61 -0
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/components/types.js +31 -0
- package/dist/esm/components/types.js.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/llm/adapters/anthropic.js +88 -2
- package/dist/esm/llm/adapters/anthropic.js.map +1 -1
- package/dist/esm/llm/adapters/gemini.js +98 -7
- package/dist/esm/llm/adapters/gemini.js.map +1 -1
- package/dist/esm/llm/adapters/index.js +15 -4
- package/dist/esm/llm/adapters/index.js.map +1 -1
- package/dist/esm/llm/adapters/ollama.js +117 -2
- package/dist/esm/llm/adapters/ollama.js.map +1 -1
- package/dist/esm/llm/adapters/openai.js +105 -1
- package/dist/esm/llm/adapters/openai.js.map +1 -1
- package/dist/esm/mcp/cli.js +267 -0
- package/dist/esm/mcp/cli.js.map +1 -0
- package/dist/esm/mcp/index.js +39 -0
- package/dist/esm/mcp/index.js.map +1 -0
- package/dist/esm/mcp/prompts.js +419 -0
- package/dist/esm/mcp/prompts.js.map +1 -0
- package/dist/esm/mcp/resources.js +359 -0
- package/dist/esm/mcp/resources.js.map +1 -0
- package/dist/esm/mcp/server.js +372 -0
- package/dist/esm/mcp/server.js.map +1 -0
- package/dist/esm/mcp/tools.js +598 -0
- package/dist/esm/mcp/tools.js.map +1 -0
- package/dist/esm/mcp/types.js +9 -0
- package/dist/esm/mcp/types.js.map +1 -0
- package/dist/esm/types/assessment.js +40 -0
- package/dist/esm/types/assessment.js.map +1 -0
- package/dist/esm/types/bloom.js +11 -0
- package/dist/esm/types/bloom.js.map +1 -1
- package/dist/esm/types/index.js +2 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/types/api/routes/analytics.d.ts +14 -0
- package/dist/types/api/routes/analytics.d.ts.map +1 -0
- package/dist/types/api/routes/assessments.d.ts +14 -0
- package/dist/types/api/routes/assessments.d.ts.map +1 -0
- package/dist/types/api/routes/curriculum.d.ts +14 -0
- package/dist/types/api/routes/curriculum.d.ts.map +1 -0
- package/dist/types/api/routes/edges.d.ts +14 -0
- package/dist/types/api/routes/edges.d.ts.map +1 -0
- package/dist/types/api/routes/explore.d.ts +14 -0
- package/dist/types/api/routes/explore.d.ts.map +1 -0
- package/dist/types/api/routes/learners.d.ts +14 -0
- package/dist/types/api/routes/learners.d.ts.map +1 -0
- package/dist/types/api/routes/me.d.ts +14 -0
- package/dist/types/api/routes/me.d.ts.map +1 -0
- package/dist/types/api/routes/skills.d.ts +14 -0
- package/dist/types/api/routes/skills.d.ts.map +1 -0
- package/dist/types/api/server.d.ts +147 -0
- package/dist/types/api/server.d.ts.map +1 -0
- package/dist/types/api/types.d.ts +443 -0
- package/dist/types/api/types.d.ts.map +1 -0
- package/dist/types/assessment/adaptive.d.ts +155 -0
- package/dist/types/assessment/adaptive.d.ts.map +1 -0
- package/dist/types/assessment/bkt.d.ts +185 -0
- package/dist/types/assessment/bkt.d.ts.map +1 -0
- package/dist/types/assessment/index.d.ts +18 -0
- package/dist/types/assessment/index.d.ts.map +1 -0
- package/dist/types/assessment/irt.d.ts +159 -0
- package/dist/types/assessment/irt.d.ts.map +1 -0
- package/dist/types/assessment/mastery-engine.d.ts +178 -0
- package/dist/types/assessment/mastery-engine.d.ts.map +1 -0
- package/dist/types/components/LearningPathView.d.ts +40 -0
- package/dist/types/components/LearningPathView.d.ts.map +1 -0
- package/dist/types/components/ProgressDashboard.d.ts +49 -0
- package/dist/types/components/ProgressDashboard.d.ts.map +1 -0
- package/dist/types/components/SkillCard.d.ts +34 -0
- package/dist/types/components/SkillCard.d.ts.map +1 -0
- package/dist/types/components/SkillExplorer.d.ts +39 -0
- package/dist/types/components/SkillExplorer.d.ts.map +1 -0
- package/dist/types/components/SkillGraph.d.ts +38 -0
- package/dist/types/components/SkillGraph.d.ts.map +1 -0
- package/dist/types/components/hooks.d.ts +187 -0
- package/dist/types/components/hooks.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +59 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/components/types.d.ts +410 -0
- package/dist/types/components/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/llm/adapters/anthropic.d.ts +84 -1
- package/dist/types/llm/adapters/anthropic.d.ts.map +1 -1
- package/dist/types/llm/adapters/gemini.d.ts +93 -6
- package/dist/types/llm/adapters/gemini.d.ts.map +1 -1
- package/dist/types/llm/adapters/index.d.ts +13 -4
- package/dist/types/llm/adapters/index.d.ts.map +1 -1
- package/dist/types/llm/adapters/ollama.d.ts +126 -1
- package/dist/types/llm/adapters/ollama.d.ts.map +1 -1
- package/dist/types/llm/adapters/openai.d.ts +104 -1
- package/dist/types/llm/adapters/openai.d.ts.map +1 -1
- package/dist/types/mcp/cli.d.ts +15 -0
- package/dist/types/mcp/cli.d.ts.map +1 -0
- package/dist/types/mcp/index.d.ts +32 -0
- package/dist/types/mcp/index.d.ts.map +1 -0
- package/dist/types/mcp/prompts.d.ts +27 -0
- package/dist/types/mcp/prompts.d.ts.map +1 -0
- package/dist/types/mcp/resources.d.ts +59 -0
- package/dist/types/mcp/resources.d.ts.map +1 -0
- package/dist/types/mcp/server.d.ts +136 -0
- package/dist/types/mcp/server.d.ts.map +1 -0
- package/dist/types/mcp/tools.d.ts +344 -0
- package/dist/types/mcp/tools.d.ts.map +1 -0
- package/dist/types/mcp/types.d.ts +137 -0
- package/dist/types/mcp/types.d.ts.map +1 -0
- package/dist/types/types/assessment.d.ts +512 -0
- package/dist/types/types/assessment.d.ts.map +1 -0
- package/dist/types/types/bloom.d.ts +4 -0
- package/dist/types/types/bloom.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +3 -1
- package/dist/types/types/index.d.ts.map +1 -1
- package/package.json +48 -3
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Component Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Types for LearnGraph React components and hooks.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import type { SkillNode, PrerequisiteEdge, BloomLevel } from '../types/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Node data for graph visualization
|
|
11
|
+
*/
|
|
12
|
+
export interface GraphNode {
|
|
13
|
+
/** Unique node ID */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Display label */
|
|
16
|
+
label: string;
|
|
17
|
+
/** Skill data */
|
|
18
|
+
skill: SkillNode;
|
|
19
|
+
/** Node position */
|
|
20
|
+
position: {
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
};
|
|
24
|
+
/** Node type for styling */
|
|
25
|
+
type: 'skill' | 'mastered' | 'available' | 'locked' | 'target';
|
|
26
|
+
/** Whether the node is selected */
|
|
27
|
+
selected?: boolean;
|
|
28
|
+
/** Custom metadata */
|
|
29
|
+
data?: Record<string, unknown>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Edge data for graph visualization
|
|
33
|
+
*/
|
|
34
|
+
export interface GraphEdge {
|
|
35
|
+
/** Unique edge ID */
|
|
36
|
+
id: string;
|
|
37
|
+
/** Source node ID */
|
|
38
|
+
source: string;
|
|
39
|
+
/** Target node ID */
|
|
40
|
+
target: string;
|
|
41
|
+
/** Edge data from storage */
|
|
42
|
+
edge: PrerequisiteEdge;
|
|
43
|
+
/** Edge type for styling */
|
|
44
|
+
type: 'required' | 'recommended' | 'optional';
|
|
45
|
+
/** Whether the edge is animated */
|
|
46
|
+
animated?: boolean;
|
|
47
|
+
/** Custom label */
|
|
48
|
+
label?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Graph layout algorithm options
|
|
52
|
+
*/
|
|
53
|
+
export type GraphLayout = 'dagre' | 'hierarchical' | 'force' | 'circular' | 'radial';
|
|
54
|
+
/**
|
|
55
|
+
* SkillGraph component props
|
|
56
|
+
*/
|
|
57
|
+
export interface SkillGraphProps {
|
|
58
|
+
/** Skills to display */
|
|
59
|
+
skills: SkillNode[];
|
|
60
|
+
/** Edges between skills */
|
|
61
|
+
edges: PrerequisiteEdge[];
|
|
62
|
+
/** IDs of mastered skills */
|
|
63
|
+
masteredSkillIds?: string[];
|
|
64
|
+
/** Target skill ID (for highlighting path) */
|
|
65
|
+
targetSkillId?: string;
|
|
66
|
+
/** Layout algorithm */
|
|
67
|
+
layout?: GraphLayout;
|
|
68
|
+
/** Node click handler */
|
|
69
|
+
onNodeClick?: (node: GraphNode) => void;
|
|
70
|
+
/** Edge click handler */
|
|
71
|
+
onEdgeClick?: (edge: GraphEdge) => void;
|
|
72
|
+
/** Whether graph is interactive */
|
|
73
|
+
interactive?: boolean;
|
|
74
|
+
/** Whether to show minimap */
|
|
75
|
+
showMinimap?: boolean;
|
|
76
|
+
/** Whether to show controls */
|
|
77
|
+
showControls?: boolean;
|
|
78
|
+
/** Custom node colors by Bloom level */
|
|
79
|
+
bloomColors?: Partial<Record<BloomLevel, string>>;
|
|
80
|
+
/** Container width */
|
|
81
|
+
width?: number | string;
|
|
82
|
+
/** Container height */
|
|
83
|
+
height?: number | string;
|
|
84
|
+
/** Custom CSS class */
|
|
85
|
+
className?: string;
|
|
86
|
+
/** Custom styles */
|
|
87
|
+
style?: React.CSSProperties;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Graph viewport state
|
|
91
|
+
*/
|
|
92
|
+
export interface GraphViewport {
|
|
93
|
+
x: number;
|
|
94
|
+
y: number;
|
|
95
|
+
zoom: number;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Mastery state for display
|
|
99
|
+
*/
|
|
100
|
+
export interface MasteryState {
|
|
101
|
+
/** Mastery probability (0-1) */
|
|
102
|
+
probability: number;
|
|
103
|
+
/** Confidence level */
|
|
104
|
+
confidence: 'low' | 'medium' | 'high';
|
|
105
|
+
/** Number of attempts */
|
|
106
|
+
attempts: number;
|
|
107
|
+
/** Last activity date */
|
|
108
|
+
lastActivity?: Date;
|
|
109
|
+
/** Time to next review */
|
|
110
|
+
nextReview?: Date;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* SkillCard component props
|
|
114
|
+
*/
|
|
115
|
+
export interface SkillCardProps {
|
|
116
|
+
/** Skill to display */
|
|
117
|
+
skill: SkillNode;
|
|
118
|
+
/** Mastery state (if known) */
|
|
119
|
+
mastery?: MasteryState;
|
|
120
|
+
/** Prerequisite skills */
|
|
121
|
+
prerequisites?: SkillNode[];
|
|
122
|
+
/** Dependent skills */
|
|
123
|
+
dependents?: SkillNode[];
|
|
124
|
+
/** Whether the skill is available to learn */
|
|
125
|
+
isAvailable?: boolean;
|
|
126
|
+
/** Whether the skill is mastered */
|
|
127
|
+
isMastered?: boolean;
|
|
128
|
+
/** Card variant */
|
|
129
|
+
variant?: 'compact' | 'detailed' | 'full';
|
|
130
|
+
/** Click handler */
|
|
131
|
+
onClick?: () => void;
|
|
132
|
+
/** Start learning handler */
|
|
133
|
+
onStartLearning?: () => void;
|
|
134
|
+
/** Practice handler */
|
|
135
|
+
onPractice?: () => void;
|
|
136
|
+
/** Custom CSS class */
|
|
137
|
+
className?: string;
|
|
138
|
+
/** Custom styles */
|
|
139
|
+
style?: React.CSSProperties;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Path step with progress info
|
|
143
|
+
*/
|
|
144
|
+
export interface PathStep {
|
|
145
|
+
/** Skill in this step */
|
|
146
|
+
skill: SkillNode;
|
|
147
|
+
/** Step number (1-indexed) */
|
|
148
|
+
stepNumber: number;
|
|
149
|
+
/** Completion status */
|
|
150
|
+
status: 'completed' | 'current' | 'upcoming' | 'locked';
|
|
151
|
+
/** Mastery state */
|
|
152
|
+
mastery?: MasteryState;
|
|
153
|
+
/** Whether this is a prerequisite */
|
|
154
|
+
isPrerequisite: boolean;
|
|
155
|
+
/** Estimated time to complete */
|
|
156
|
+
estimatedMinutes: number;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* LearningPathView component props
|
|
160
|
+
*/
|
|
161
|
+
export interface LearningPathViewProps {
|
|
162
|
+
/** Path steps to display */
|
|
163
|
+
steps: PathStep[];
|
|
164
|
+
/** Target skill name */
|
|
165
|
+
targetSkillName: string;
|
|
166
|
+
/** Current step index */
|
|
167
|
+
currentStepIndex?: number;
|
|
168
|
+
/** View mode */
|
|
169
|
+
viewMode?: 'list' | 'timeline' | 'cards';
|
|
170
|
+
/** Step click handler */
|
|
171
|
+
onStepClick?: (step: PathStep) => void;
|
|
172
|
+
/** Start step handler */
|
|
173
|
+
onStartStep?: (step: PathStep) => void;
|
|
174
|
+
/** Show time estimates */
|
|
175
|
+
showTimeEstimates?: boolean;
|
|
176
|
+
/** Show progress bar */
|
|
177
|
+
showProgress?: boolean;
|
|
178
|
+
/** Custom CSS class */
|
|
179
|
+
className?: string;
|
|
180
|
+
/** Custom styles */
|
|
181
|
+
style?: React.CSSProperties;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Learning statistics
|
|
185
|
+
*/
|
|
186
|
+
export interface LearningStats {
|
|
187
|
+
/** Total skills in curriculum */
|
|
188
|
+
totalSkills: number;
|
|
189
|
+
/** Skills mastered */
|
|
190
|
+
masteredSkills: number;
|
|
191
|
+
/** Skills in progress */
|
|
192
|
+
inProgressSkills: number;
|
|
193
|
+
/** Skills available to learn */
|
|
194
|
+
availableSkills: number;
|
|
195
|
+
/** Total learning time (minutes) */
|
|
196
|
+
totalLearningTime: number;
|
|
197
|
+
/** Average mastery probability */
|
|
198
|
+
averageMastery: number;
|
|
199
|
+
/** Streak days */
|
|
200
|
+
streakDays: number;
|
|
201
|
+
/** Skills mastered this week */
|
|
202
|
+
weeklyProgress: number;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Bloom level progress
|
|
206
|
+
*/
|
|
207
|
+
export interface BloomProgress {
|
|
208
|
+
level: BloomLevel;
|
|
209
|
+
total: number;
|
|
210
|
+
mastered: number;
|
|
211
|
+
percentage: number;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Recent activity item
|
|
215
|
+
*/
|
|
216
|
+
export interface ActivityItem {
|
|
217
|
+
/** Activity type */
|
|
218
|
+
type: 'mastered' | 'practiced' | 'started' | 'reviewed';
|
|
219
|
+
/** Skill involved */
|
|
220
|
+
skill: SkillNode;
|
|
221
|
+
/** Activity timestamp */
|
|
222
|
+
timestamp: Date;
|
|
223
|
+
/** Duration in minutes */
|
|
224
|
+
duration?: number;
|
|
225
|
+
/** Result (for practice) */
|
|
226
|
+
result?: {
|
|
227
|
+
correct: number;
|
|
228
|
+
total: number;
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* ProgressDashboard component props
|
|
233
|
+
*/
|
|
234
|
+
export interface ProgressDashboardProps {
|
|
235
|
+
/** Learning statistics */
|
|
236
|
+
stats: LearningStats;
|
|
237
|
+
/** Progress by Bloom level */
|
|
238
|
+
bloomProgress: BloomProgress[];
|
|
239
|
+
/** Recent activities */
|
|
240
|
+
recentActivity: ActivityItem[];
|
|
241
|
+
/** Skills due for review */
|
|
242
|
+
dueForReview?: SkillNode[];
|
|
243
|
+
/** Recommended next skills */
|
|
244
|
+
recommendations?: SkillNode[];
|
|
245
|
+
/** Learning goals */
|
|
246
|
+
goals?: Array<{
|
|
247
|
+
name: string;
|
|
248
|
+
targetSkillId: string;
|
|
249
|
+
progress: number;
|
|
250
|
+
deadline?: Date;
|
|
251
|
+
}>;
|
|
252
|
+
/** Show detailed stats */
|
|
253
|
+
showDetailedStats?: boolean;
|
|
254
|
+
/** Show activity feed */
|
|
255
|
+
showActivityFeed?: boolean;
|
|
256
|
+
/** Skill click handler */
|
|
257
|
+
onSkillClick?: (skill: SkillNode) => void;
|
|
258
|
+
/** Start review handler */
|
|
259
|
+
onStartReview?: () => void;
|
|
260
|
+
/** Custom CSS class */
|
|
261
|
+
className?: string;
|
|
262
|
+
/** Custom styles */
|
|
263
|
+
style?: React.CSSProperties;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Filter options for skill explorer
|
|
267
|
+
*/
|
|
268
|
+
export interface SkillFilters {
|
|
269
|
+
/** Search query */
|
|
270
|
+
query?: string;
|
|
271
|
+
/** Bloom levels to include */
|
|
272
|
+
bloomLevels?: BloomLevel[];
|
|
273
|
+
/** Tags to include */
|
|
274
|
+
tags?: string[];
|
|
275
|
+
/** Mastery status filter */
|
|
276
|
+
masteryStatus?: 'all' | 'mastered' | 'available' | 'locked';
|
|
277
|
+
/** Sort field */
|
|
278
|
+
sortBy?: 'name' | 'bloomLevel' | 'estimatedMinutes' | 'mastery';
|
|
279
|
+
/** Sort direction */
|
|
280
|
+
sortDirection?: 'asc' | 'desc';
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* SkillExplorer component props
|
|
284
|
+
*/
|
|
285
|
+
export interface SkillExplorerProps {
|
|
286
|
+
/** Skills to explore */
|
|
287
|
+
skills: SkillNode[];
|
|
288
|
+
/** Edges between skills */
|
|
289
|
+
edges: PrerequisiteEdge[];
|
|
290
|
+
/** IDs of mastered skills */
|
|
291
|
+
masteredSkillIds?: string[];
|
|
292
|
+
/** Available tags for filtering */
|
|
293
|
+
availableTags?: string[];
|
|
294
|
+
/** Initial filters */
|
|
295
|
+
initialFilters?: SkillFilters;
|
|
296
|
+
/** View mode */
|
|
297
|
+
viewMode?: 'grid' | 'list' | 'graph';
|
|
298
|
+
/** Filter change handler */
|
|
299
|
+
onFiltersChange?: (filters: SkillFilters) => void;
|
|
300
|
+
/** Skill selection handler */
|
|
301
|
+
onSkillSelect?: (skill: SkillNode) => void;
|
|
302
|
+
/** Set goal handler */
|
|
303
|
+
onSetGoal?: (skill: SkillNode) => void;
|
|
304
|
+
/** Enable search */
|
|
305
|
+
enableSearch?: boolean;
|
|
306
|
+
/** Enable filters */
|
|
307
|
+
enableFilters?: boolean;
|
|
308
|
+
/** Enable view toggle */
|
|
309
|
+
enableViewToggle?: boolean;
|
|
310
|
+
/** Custom CSS class */
|
|
311
|
+
className?: string;
|
|
312
|
+
/** Custom styles */
|
|
313
|
+
style?: React.CSSProperties;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Graph context value
|
|
317
|
+
*/
|
|
318
|
+
export interface LearnGraphContextValue {
|
|
319
|
+
/** All skills */
|
|
320
|
+
skills: SkillNode[];
|
|
321
|
+
/** All edges */
|
|
322
|
+
edges: PrerequisiteEdge[];
|
|
323
|
+
/** Mastered skill IDs */
|
|
324
|
+
masteredSkillIds: Set<string>;
|
|
325
|
+
/** Loading state */
|
|
326
|
+
isLoading: boolean;
|
|
327
|
+
/** Error state */
|
|
328
|
+
error: Error | null;
|
|
329
|
+
/** Refresh data */
|
|
330
|
+
refresh: () => Promise<void>;
|
|
331
|
+
/** Get skill by ID */
|
|
332
|
+
getSkill: (id: string) => SkillNode | undefined;
|
|
333
|
+
/** Get prerequisites of a skill */
|
|
334
|
+
getPrerequisites: (skillId: string) => SkillNode[];
|
|
335
|
+
/** Get dependents of a skill */
|
|
336
|
+
getDependents: (skillId: string) => SkillNode[];
|
|
337
|
+
/** Check if skill is available */
|
|
338
|
+
isSkillAvailable: (skillId: string) => boolean;
|
|
339
|
+
/** Mark skill as mastered */
|
|
340
|
+
markMastered: (skillId: string) => Promise<void>;
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Use learning path hook options
|
|
344
|
+
*/
|
|
345
|
+
export interface UseLearningPathOptions {
|
|
346
|
+
/** Target skill ID */
|
|
347
|
+
targetSkillId: string;
|
|
348
|
+
/** Mastered skill IDs */
|
|
349
|
+
masteredSkillIds?: string[];
|
|
350
|
+
/** Whether to auto-refresh */
|
|
351
|
+
autoRefresh?: boolean;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Use learning path hook result
|
|
355
|
+
*/
|
|
356
|
+
export interface UseLearningPathResult {
|
|
357
|
+
/** Path steps */
|
|
358
|
+
steps: PathStep[];
|
|
359
|
+
/** Loading state */
|
|
360
|
+
isLoading: boolean;
|
|
361
|
+
/** Error state */
|
|
362
|
+
error: Error | null;
|
|
363
|
+
/** Total estimated minutes */
|
|
364
|
+
totalMinutes: number;
|
|
365
|
+
/** Number of prerequisites */
|
|
366
|
+
prerequisiteCount: number;
|
|
367
|
+
/** Refresh path */
|
|
368
|
+
refresh: () => Promise<void>;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Use ZPD hook options
|
|
372
|
+
*/
|
|
373
|
+
export interface UseZPDOptions {
|
|
374
|
+
/** Mastered skill IDs */
|
|
375
|
+
masteredSkillIds?: string[];
|
|
376
|
+
/** Maximum skills to return */
|
|
377
|
+
limit?: number;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Use ZPD hook result
|
|
381
|
+
*/
|
|
382
|
+
export interface UseZPDResult {
|
|
383
|
+
/** Skills ready to learn */
|
|
384
|
+
readyToLearn: SkillNode[];
|
|
385
|
+
/** Skills almost ready */
|
|
386
|
+
almostReady: Array<{
|
|
387
|
+
skill: SkillNode;
|
|
388
|
+
missingPrerequisites: SkillNode[];
|
|
389
|
+
}>;
|
|
390
|
+
/** Loading state */
|
|
391
|
+
isLoading: boolean;
|
|
392
|
+
/** Error state */
|
|
393
|
+
error: Error | null;
|
|
394
|
+
/** Refresh ZPD */
|
|
395
|
+
refresh: () => Promise<void>;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Default Bloom level colors
|
|
399
|
+
*/
|
|
400
|
+
export declare const DEFAULT_BLOOM_COLORS: Record<BloomLevel, string>;
|
|
401
|
+
/**
|
|
402
|
+
* Status colors for mastery
|
|
403
|
+
*/
|
|
404
|
+
export declare const STATUS_COLORS: {
|
|
405
|
+
readonly mastered: "#22c55e";
|
|
406
|
+
readonly available: "#3b82f6";
|
|
407
|
+
readonly inProgress: "#f59e0b";
|
|
408
|
+
readonly locked: "#9ca3af";
|
|
409
|
+
};
|
|
410
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
* @packageDocumentation
|
|
28
28
|
*/
|
|
29
29
|
export * from './types/index.js';
|
|
30
|
+
export { BKTEngine, createBKTEngine, estimateMastery, fitBKTParameters, calculateLogLikelihood, BKT_CONFIG_DEFAULTS, IRTEstimator, createIRTEstimator, calculateProbability, calculateProbabilityDerivative, calculateInformation, calculateTestInformation, calculateStandardError, selectNextItemMFI, abilityToPercentile, abilityToGradeLevel, estimateAbility, IRT_CONFIG_DEFAULTS, MasteryEngine, createMasteryEngine, MASTERY_ENGINE_DEFAULTS, AdaptiveEngine, createAdaptiveEngine, createQuestionPool, ADAPTIVE_DEFAULTS, TERMINATION_DEFAULTS, } from './assessment/index.js';
|
|
30
31
|
/**
|
|
31
32
|
* Package version
|
|
32
33
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,cAAc,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,cAAc,kBAAkB,CAAC;AAKjC,OAAO,EAEL,SAAS,EACT,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EAEnB,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,8BAA8B,EAC9B,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EAEnB,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EAEvB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAM/B;;GAEG;AACH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,YAAY,eAAe,CAAC"}
|
|
@@ -1,10 +1,70 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Anthropic adapter for LLM integration
|
|
3
3
|
*
|
|
4
|
+
* Supports all Claude models including the latest Claude 4.5 family.
|
|
5
|
+
*
|
|
4
6
|
* @packageDocumentation
|
|
5
7
|
*/
|
|
6
8
|
import type { LLMProvider, AnthropicConfig, CompletionRequest, CompletionResponse } from '../../types/llm.js';
|
|
7
9
|
import { BaseLLMAdapter } from './base.js';
|
|
10
|
+
/**
|
|
11
|
+
* Claude 4.5 Models (Latest - November 2025)
|
|
12
|
+
* - Opus 4.5: Most intelligent, complex reasoning
|
|
13
|
+
* - Sonnet 4.5: Best for coding & agents
|
|
14
|
+
* - Haiku 4.5: Fast & cost-effective
|
|
15
|
+
*/
|
|
16
|
+
export declare const CLAUDE_4_5_MODELS: {
|
|
17
|
+
readonly 'opus-4.5': "claude-opus-4-5-20251101";
|
|
18
|
+
readonly 'sonnet-4.5': "claude-sonnet-4-5-20250514";
|
|
19
|
+
readonly 'haiku-4.5': "claude-haiku-4-5-20251001";
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Claude 4 Models (May-August 2025)
|
|
23
|
+
*/
|
|
24
|
+
export declare const CLAUDE_4_MODELS: {
|
|
25
|
+
readonly 'opus-4.1': "claude-opus-4-1-20250805";
|
|
26
|
+
readonly 'opus-4': "claude-opus-4-20250514";
|
|
27
|
+
readonly 'sonnet-4': "claude-sonnet-4-20250514";
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Claude 3.5 Models (Legacy - 2024)
|
|
31
|
+
*/
|
|
32
|
+
export declare const CLAUDE_3_5_MODELS: {
|
|
33
|
+
readonly 'sonnet-3.5': "claude-3-5-sonnet-20241022";
|
|
34
|
+
readonly 'haiku-3.5': "claude-3-5-haiku-20241022";
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Claude 3 Models (Legacy - Early 2024)
|
|
38
|
+
*/
|
|
39
|
+
export declare const CLAUDE_3_MODELS: {
|
|
40
|
+
readonly 'opus-3': "claude-3-opus-20240229";
|
|
41
|
+
readonly 'sonnet-3': "claude-3-sonnet-20240229";
|
|
42
|
+
readonly 'haiku-3': "claude-3-haiku-20240307";
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* All available Claude models
|
|
46
|
+
*/
|
|
47
|
+
export declare const CLAUDE_MODELS: {
|
|
48
|
+
readonly 'opus-3': "claude-3-opus-20240229";
|
|
49
|
+
readonly 'sonnet-3': "claude-3-sonnet-20240229";
|
|
50
|
+
readonly 'haiku-3': "claude-3-haiku-20240307";
|
|
51
|
+
readonly 'sonnet-3.5': "claude-3-5-sonnet-20241022";
|
|
52
|
+
readonly 'haiku-3.5': "claude-3-5-haiku-20241022";
|
|
53
|
+
readonly 'opus-4.1': "claude-opus-4-1-20250805";
|
|
54
|
+
readonly 'opus-4': "claude-opus-4-20250514";
|
|
55
|
+
readonly 'sonnet-4': "claude-sonnet-4-20250514";
|
|
56
|
+
readonly 'opus-4.5': "claude-opus-4-5-20251101";
|
|
57
|
+
readonly 'sonnet-4.5': "claude-sonnet-4-5-20250514";
|
|
58
|
+
readonly 'haiku-4.5': "claude-haiku-4-5-20251001";
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Model alias type for convenient model selection
|
|
62
|
+
*/
|
|
63
|
+
export type ClaudeModelAlias = keyof typeof CLAUDE_MODELS;
|
|
64
|
+
/**
|
|
65
|
+
* Resolve a model alias or ID to the full model ID
|
|
66
|
+
*/
|
|
67
|
+
export declare function resolveClaudeModel(modelOrAlias: string): string;
|
|
8
68
|
/**
|
|
9
69
|
* Anthropic adapter for Claude models
|
|
10
70
|
*/
|
|
@@ -16,6 +76,29 @@ export declare class AnthropicAdapter extends BaseLLMAdapter {
|
|
|
16
76
|
}
|
|
17
77
|
/**
|
|
18
78
|
* Create an Anthropic adapter from environment variables
|
|
79
|
+
*
|
|
80
|
+
* @param model - Model ID or alias (e.g., 'sonnet-4.5', 'opus-4.5', 'haiku-4.5')
|
|
81
|
+
* Use aliases for convenience or full model IDs for specific versions.
|
|
82
|
+
* Any valid Claude model ID will work - not limited to the aliases.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* // Using aliases (recommended)
|
|
87
|
+
* const adapter = createAnthropicAdapter('sonnet-4.5');
|
|
88
|
+
*
|
|
89
|
+
* // Using full model ID
|
|
90
|
+
* const adapter = createAnthropicAdapter('claude-opus-4-5-20251101');
|
|
91
|
+
*
|
|
92
|
+
* // Using a future model (when released)
|
|
93
|
+
* const adapter = createAnthropicAdapter('claude-opus-5-20260101');
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function createAnthropicAdapter(model?: ClaudeModelAlias | string, overrides?: Partial<AnthropicConfig>): AnthropicAdapter;
|
|
97
|
+
/**
|
|
98
|
+
* List all available Claude model aliases
|
|
19
99
|
*/
|
|
20
|
-
export declare function
|
|
100
|
+
export declare function listClaudeModels(): {
|
|
101
|
+
alias: string;
|
|
102
|
+
modelId: string;
|
|
103
|
+
}[];
|
|
21
104
|
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/llm/adapters/anthropic.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/llm/adapters/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAA4B,MAAM,WAAW,CAAC;AAQrE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;CAKhB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,aAAa,CAAC;AAE1D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAO/D;AAiCD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,eAAe;IAKnC,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAEK,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAyGxE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,GAAE,gBAAgB,GAAG,MAAqB,EAC/C,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACnC,gBAAgB,CAclB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAKvE"}
|
|
@@ -1,18 +1,79 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Google Gemini LLM adapter
|
|
3
3
|
*
|
|
4
|
+
* Supports all Gemini models including the latest Gemini 3 family.
|
|
5
|
+
*
|
|
4
6
|
* @packageDocumentation
|
|
5
7
|
*/
|
|
6
8
|
import type { LLMProvider, GeminiConfig, CompletionRequest, CompletionResponse } from '../../types/llm.js';
|
|
7
9
|
import { BaseLLMAdapter } from './base.js';
|
|
10
|
+
/**
|
|
11
|
+
* Gemini 3 Models (Latest - December 2025)
|
|
12
|
+
* - gemini-3-pro: Most intelligent, PhD-level reasoning
|
|
13
|
+
* - gemini-3-flash: Fast frontier performance
|
|
14
|
+
* - gemini-3-deep-think: Extended reasoning mode
|
|
15
|
+
*/
|
|
16
|
+
export declare const GEMINI_3_MODELS: {
|
|
17
|
+
readonly 'gemini-3-pro': "gemini-3.0-pro";
|
|
18
|
+
readonly 'gemini-3-flash': "gemini-3.0-flash";
|
|
19
|
+
readonly 'gemini-3-deep-think': "gemini-3.0-deep-think";
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Gemini 2.5 Models (2025)
|
|
23
|
+
* - Best price-performance ratio
|
|
24
|
+
*/
|
|
25
|
+
export declare const GEMINI_2_5_MODELS: {
|
|
26
|
+
readonly 'gemini-2.5-pro': "gemini-2.5-pro";
|
|
27
|
+
readonly 'gemini-2.5-flash': "gemini-2.5-flash";
|
|
28
|
+
readonly 'gemini-2.5-flash-lite': "gemini-2.5-flash-lite";
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Gemini 2.0 Models (Late 2024 - Early 2025)
|
|
32
|
+
*/
|
|
33
|
+
export declare const GEMINI_2_0_MODELS: {
|
|
34
|
+
readonly 'gemini-2.0-flash': "gemini-2.0-flash";
|
|
35
|
+
readonly 'gemini-2.0-flash-exp': "gemini-2.0-flash-exp";
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Gemini 1.5 Models (Legacy - 2024)
|
|
39
|
+
*/
|
|
40
|
+
export declare const GEMINI_1_5_MODELS: {
|
|
41
|
+
readonly 'gemini-1.5-pro': "gemini-1.5-pro";
|
|
42
|
+
readonly 'gemini-1.5-flash': "gemini-1.5-flash";
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* All available Gemini models
|
|
46
|
+
*/
|
|
47
|
+
export declare const GEMINI_MODELS: {
|
|
48
|
+
readonly 'gemini-1.5-pro': "gemini-1.5-pro";
|
|
49
|
+
readonly 'gemini-1.5-flash': "gemini-1.5-flash";
|
|
50
|
+
readonly 'gemini-2.0-flash': "gemini-2.0-flash";
|
|
51
|
+
readonly 'gemini-2.0-flash-exp': "gemini-2.0-flash-exp";
|
|
52
|
+
readonly 'gemini-2.5-pro': "gemini-2.5-pro";
|
|
53
|
+
readonly 'gemini-2.5-flash': "gemini-2.5-flash";
|
|
54
|
+
readonly 'gemini-2.5-flash-lite': "gemini-2.5-flash-lite";
|
|
55
|
+
readonly 'gemini-3-pro': "gemini-3.0-pro";
|
|
56
|
+
readonly 'gemini-3-flash': "gemini-3.0-flash";
|
|
57
|
+
readonly 'gemini-3-deep-think': "gemini-3.0-deep-think";
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Model alias type for convenient model selection
|
|
61
|
+
*/
|
|
62
|
+
export type GeminiModelAlias = keyof typeof GEMINI_MODELS;
|
|
63
|
+
/**
|
|
64
|
+
* Resolve a model alias or ID to the full model ID
|
|
65
|
+
*/
|
|
66
|
+
export declare function resolveGeminiModel(modelOrAlias: string): string;
|
|
8
67
|
/**
|
|
9
68
|
* Adapter for Google Gemini models
|
|
10
69
|
*
|
|
11
|
-
* Supports:
|
|
12
|
-
* - gemini-
|
|
13
|
-
* - gemini-
|
|
14
|
-
* - gemini-
|
|
15
|
-
* - gemini-1.
|
|
70
|
+
* Supports all Gemini models including:
|
|
71
|
+
* - Gemini 3: gemini-3-pro, gemini-3-flash, gemini-3-deep-think
|
|
72
|
+
* - Gemini 2.5: gemini-2.5-pro, gemini-2.5-flash
|
|
73
|
+
* - Gemini 2.0: gemini-2.0-flash
|
|
74
|
+
* - Legacy: gemini-1.5-pro, gemini-1.5-flash
|
|
75
|
+
*
|
|
76
|
+
* Any valid Gemini model ID will work.
|
|
16
77
|
*/
|
|
17
78
|
export declare class GeminiAdapter extends BaseLLMAdapter {
|
|
18
79
|
private readonly baseUrl;
|
|
@@ -25,6 +86,32 @@ export declare class GeminiAdapter extends BaseLLMAdapter {
|
|
|
25
86
|
}
|
|
26
87
|
/**
|
|
27
88
|
* Create a Gemini adapter from environment variables
|
|
89
|
+
*
|
|
90
|
+
* @param model - Model ID or alias (e.g., 'gemini-3-flash', 'gemini-3-pro', 'gemini-2.5-flash')
|
|
91
|
+
* Use aliases for convenience or full model IDs for specific versions.
|
|
92
|
+
* Any valid Gemini model ID will work - not limited to the aliases.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* // Using latest fast model
|
|
97
|
+
* const adapter = createGeminiAdapter('gemini-3-flash');
|
|
98
|
+
*
|
|
99
|
+
* // Using most capable model
|
|
100
|
+
* const adapter = createGeminiAdapter('gemini-3-pro');
|
|
101
|
+
*
|
|
102
|
+
* // Using cost-effective option
|
|
103
|
+
* const adapter = createGeminiAdapter('gemini-2.5-flash');
|
|
104
|
+
*
|
|
105
|
+
* // Using a future model (when released)
|
|
106
|
+
* const adapter = createGeminiAdapter('gemini-4-ultra');
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function createGeminiAdapter(model?: GeminiModelAlias | string, overrides?: Partial<GeminiConfig>): GeminiAdapter;
|
|
110
|
+
/**
|
|
111
|
+
* List all available Gemini model aliases
|
|
28
112
|
*/
|
|
29
|
-
export declare function
|
|
113
|
+
export declare function listGeminiModels(): {
|
|
114
|
+
alias: string;
|
|
115
|
+
modelId: string;
|
|
116
|
+
}[];
|
|
30
117
|
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../../src/llm/adapters/gemini.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../../src/llm/adapters/gemini.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAY,MAAM,WAAW,CAAC;AAQrD;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;CAKhB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,aAAa,CAAC;AAE1D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAO/D;AAsCD;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,SAAQ,cAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,YAAY;IAOhC,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAEK,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2BvE,OAAO,CAAC,YAAY;YAgCN,cAAc;IAyC5B,OAAO,CAAC,aAAa;CA6CtB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,GAAE,gBAAgB,GAAG,MAAyB,EACnD,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,aAAa,CAkBf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAKvE"}
|