File size: 3,907 Bytes
b8e705b
410893b
 
 
6822e1b
410893b
 
 
 
 
6822e1b
410893b
 
 
 
 
6822e1b
410893b
 
 
 
 
 
6822e1b
410893b
 
 
 
 
6822e1b
410893b
 
 
 
 
 
6822e1b
410893b
 
 
 
 
6822e1b
410893b
 
 
 
6822e1b
410893b
 
 
 
6822e1b
410893b
 
 
 
6822e1b
410893b
 
 
 
 
6822e1b
410893b
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
from typing import List, Optional
from pydantic import BaseModel, Field, conint, confloat

class PotentialValue(BaseModel):
  """A potential value within an exploration axis"""
  value: str = Field(..., description="The specific value within the axis")
  relevance_score: confloat(ge=0, le=100) = Field(..., description="Relevance score from 0-100")
  contextual_rationale: str = Field(..., description="Explanation of the value's relevance")

class InnovativeValue(BaseModel):
  """An innovative value within an emergent axis"""
  value: str = Field(..., description="The innovative value within the emergent axis")
  innovation_score: confloat(ge=0, le=100) = Field(..., description="Innovation score from 0-100")
  discovery_potential: str = Field(..., description="Description of potential discoveries")

class StandardAxis(BaseModel):
  """A standard exploration axis"""
  name: str = Field(..., description="Name of the standard axis")
  current_values: List[str] = Field(default_factory=list, description="Currently selected values")
  potential_values: List[PotentialValue] = Field(..., description="Potential values for exploration")
  axis_constraints: List[str] = Field(..., description="Constraints for this axis")

class EmergentAxis(BaseModel):
  """An emergent exploration axis"""
  name: str = Field(..., description="Name of the emergent axis")
  parent_axis: str = Field(..., description="Parent axis from which this emerged")
  innovative_values: List[InnovativeValue] = Field(..., description="Innovative values for exploration")

class ZoomTrajectory(BaseModel):
  """A trajectory for zooming into specific aspects"""
  target_axis: str = Field(..., description="Target axis for zooming")
  zoom_value: str = Field(..., description="Specific value to zoom into")
  unlocked_dimensions: List[str] = Field(..., description="New dimensions unlocked by zooming")
  depth_increment: conint(ge=1, le=3) = Field(..., description="Depth increase (1-3)")

class DezoomPathway(BaseModel):
  """A pathway for zooming out to broader context"""
  removal_tuple: dict = Field(..., description="Axis-value pair to remove")
  contextual_expansion: str = Field(..., description="Description of broader context")
  new_possibility_vectors: List[str] = Field(..., description="New possibilities unlocked")

class ExplorationSummary(BaseModel):
  """Summary of the current exploration state"""
  current_context: str = Field(..., description="Current exploration context")
  complexity_level: conint(ge=0, le=10) = Field(..., description="Complexity level (0-10)")

class KnowledgeAxes(BaseModel):
  """Collection of exploration axes"""
  standard_axes: List[StandardAxis] = Field(..., description="Standard exploration axes")
  emergent_axes: List[EmergentAxis] = Field(default_factory=list, description="Emergent exploration axes")

class NavigationStrategies(BaseModel):
  """Available navigation strategies"""
  zoom_trajectories: List[ZoomTrajectory] = Field(..., description="Paths for deeper exploration")
  dezoom_pathways: List[DezoomPathway] = Field(..., description="Paths for broader exploration")

class MetaInsights(BaseModel):
  """Meta-level insights about the exploration"""
  exploration_efficiency: confloat(ge=0, le=100) = Field(..., description="Overall efficiency score")
  knowledge_gap_indicators: List[str] = Field(..., description="Identified knowledge gaps")
  recommended_next_steps: List[str] = Field(..., description="Recommended next steps")

class ExplorationResponse(BaseModel):
  """Complete exploration response structure"""
  exploration_summary: ExplorationSummary = Field(..., description="Summary of exploration state")
  knowledge_axes: KnowledgeAxes = Field(..., description="Exploration axes")
  navigation_strategies: NavigationStrategies = Field(..., description="Navigation options")
  meta_insights: MetaInsights = Field(..., description="Meta-level insights")