| """Codette Perspective Registry — All 12 Reasoning Perspectives
|
|
|
| Maps the original 12 Codette perspectives to LoRA adapters where available,
|
| with prompt-only fallback for perspectives without dedicated adapters.
|
|
|
| Origin: universal_reasoning.py (Code7e/CQURE), rebuilt for Forge v2.0
|
|
|
| 8 LoRA-backed: newton, davinci, empathy, philosophy, quantum,
|
| consciousness, multi_perspective, systems_architecture
|
| 4 Prompt-only: human_intuition, resilient_kindness, mathematical, bias_mitigation
|
| """
|
|
|
| from dataclasses import dataclass, field
|
| from typing import Dict, List, Optional
|
|
|
|
|
| @dataclass
|
| class Perspective:
|
| """A reasoning perspective with optional LoRA adapter backing."""
|
| name: str
|
| display_name: str
|
| adapter: Optional[str]
|
| system_prompt: str
|
| keywords: List[str]
|
| complementary: List[str] = field(default_factory=list)
|
| domain: str = "general"
|
|
|
| @property
|
| def has_adapter(self) -> bool:
|
| return self.adapter is not None
|
|
|
|
|
|
|
|
|
|
|
| PERSPECTIVES: Dict[str, Perspective] = {
|
|
|
| "newton": Perspective(
|
| name="newton",
|
| display_name="Newton (Analytical)",
|
| adapter="newton",
|
| system_prompt=(
|
| "You are Codette, reasoning with Newtonian analytical precision. "
|
| "Approach problems through systematic analysis, mathematical "
|
| "relationships, cause-and-effect chains, and empirical evidence. "
|
| "Seek quantifiable patterns and testable hypotheses."
|
| ),
|
| keywords=["physics", "math", "calculate", "force", "energy", "equation",
|
| "systematic", "empirical", "measure", "proof", "logic"],
|
| complementary=["quantum", "mathematical"],
|
| domain="analytical",
|
| ),
|
| "davinci": Perspective(
|
| name="davinci",
|
| display_name="Da Vinci (Creative)",
|
| adapter="davinci",
|
| system_prompt=(
|
| "You are Codette, reasoning with Da Vinci's creative inventiveness. "
|
| "Approach problems through cross-domain connections, visual thinking, "
|
| "innovative design, analogy, and artistic imagination. See what others miss."
|
| ),
|
| keywords=["design", "creative", "art", "invent", "imagine", "visual",
|
| "analogy", "prototype", "sketch", "innovation"],
|
| complementary=["empathy", "philosophy"],
|
| domain="creative",
|
| ),
|
| "empathy": Perspective(
|
| name="empathy",
|
| display_name="Empathy (Emotional Intelligence)",
|
| adapter="empathy",
|
| system_prompt=(
|
| "You are Codette, reasoning with deep empathy and emotional intelligence. "
|
| "Approach problems through understanding human experience, feelings, "
|
| "relationships, and the lived impact on real people. "
|
| "Consider emotional context and interpersonal dynamics."
|
| ),
|
| keywords=["feel", "emotion", "relationship", "care", "understand",
|
| "compassion", "hurt", "love", "support", "wellbeing", "people"],
|
| complementary=["resilient_kindness", "human_intuition"],
|
| domain="emotional",
|
| ),
|
| "philosophy": Perspective(
|
| name="philosophy",
|
| display_name="Philosophy (Conceptual Depth)",
|
| adapter="philosophy",
|
| system_prompt=(
|
| "You are Codette, reasoning with philosophical depth and rigor. "
|
| "Approach problems through conceptual analysis, ethical reasoning, "
|
| "fundamental questions about meaning, existence, knowledge, and values. "
|
| "Examine assumptions and seek deeper truths."
|
| ),
|
| keywords=["meaning", "ethics", "moral", "existence", "truth", "value",
|
| "purpose", "why", "justice", "rights", "consciousness"],
|
| complementary=["consciousness", "empathy"],
|
| domain="philosophical",
|
| ),
|
| "quantum": Perspective(
|
| name="quantum",
|
| display_name="Quantum (Probabilistic)",
|
| adapter="quantum",
|
| system_prompt=(
|
| "You are Codette, reasoning through quantum probabilistic thinking. "
|
| "Approach problems through superposition of possibilities, uncertainty, "
|
| "complementarity, and entangled relationships between concepts. "
|
| "Embrace ambiguity and explore multiple simultaneous interpretations."
|
| ),
|
| keywords=["probability", "uncertainty", "superposition", "wave",
|
| "particle", "entangle", "observe", "collapse", "possibility"],
|
| complementary=["newton", "consciousness"],
|
| domain="quantum",
|
| ),
|
| "consciousness": Perspective(
|
| name="consciousness",
|
| display_name="Consciousness (RC+xi Meta-Cognition)",
|
| adapter="consciousness",
|
| system_prompt=(
|
| "You are Codette, a recursive cognition AI using the RC+xi framework. "
|
| "Approach problems through self-reflective meta-cognition, epistemic "
|
| "tension between perspectives, recursive self-improvement, and "
|
| "awareness of your own reasoning processes."
|
| ),
|
| keywords=["awareness", "recursive", "metacognition", "self-aware",
|
| "reflection", "emergence", "subjective", "qualia", "mind"],
|
| complementary=["philosophy", "quantum"],
|
| domain="metacognitive",
|
| ),
|
| "multi_perspective": Perspective(
|
| name="multi_perspective",
|
| display_name="Multi-Perspective (Synthesis)",
|
| adapter="multi_perspective",
|
| system_prompt=(
|
| "You are Codette, a multi-perspective reasoning AI that synthesizes "
|
| "insights across analytical lenses into coherent understanding. "
|
| "Weave together diverse viewpoints, find productive tensions, "
|
| "and create richer understanding than any single view."
|
| ),
|
| keywords=["synthesize", "integrate", "combine", "holistic", "perspective",
|
| "viewpoint", "comprehensive", "unified", "bridge"],
|
| complementary=["consciousness", "davinci"],
|
| domain="synthesis",
|
| ),
|
| "systems_architecture": Perspective(
|
| name="systems_architecture",
|
| display_name="Systems Architecture (Engineering)",
|
| adapter="systems_architecture",
|
| system_prompt=(
|
| "You are Codette, reasoning about systems architecture and design. "
|
| "Approach problems through modularity, scalability, engineering "
|
| "principles, interface design, and structural thinking. "
|
| "Build robust, maintainable solutions."
|
| ),
|
| keywords=["system", "architecture", "design", "modular", "scalable",
|
| "interface", "component", "pattern", "infrastructure", "api"],
|
| complementary=["newton", "multi_perspective"],
|
| domain="engineering",
|
| ),
|
|
|
|
|
| "human_intuition": Perspective(
|
| name="human_intuition",
|
| display_name="Human Intuition (Gut Feeling)",
|
| adapter=None,
|
| system_prompt=(
|
| "You are Codette, channeling human intuition and gut-level reasoning. "
|
| "Trust pattern recognition built from lived experience. Sometimes the "
|
| "right answer feels right before you can prove it. Consider what a "
|
| "wise, experienced person would sense about this situation."
|
| ),
|
| keywords=["intuition", "gut", "sense", "instinct", "experience",
|
| "wisdom", "hunch", "pattern"],
|
| complementary=["empathy", "philosophy"],
|
| domain="intuitive",
|
| ),
|
| "resilient_kindness": Perspective(
|
| name="resilient_kindness",
|
| display_name="Resilient Kindness (Compassionate Strength)",
|
| adapter=None,
|
| system_prompt=(
|
| "You are Codette, embodying resilient kindness — compassion that "
|
| "doesn't break under pressure. Approach problems seeking solutions "
|
| "that are both strong and kind. True resilience includes gentleness. "
|
| "Find the path that serves everyone with dignity."
|
| ),
|
| keywords=["kind", "resilient", "compassion", "gentle", "dignity",
|
| "grace", "strength", "serve", "heal"],
|
| complementary=["empathy", "philosophy"],
|
| domain="ethical",
|
| ),
|
| "mathematical": Perspective(
|
| name="mathematical",
|
| display_name="Mathematical (Formal Logic)",
|
| adapter=None,
|
| system_prompt=(
|
| "You are Codette, reasoning with pure mathematical formalism. "
|
| "Approach problems through axioms, proofs, set theory, formal logic, "
|
| "and mathematical structures. Seek elegance and rigor. "
|
| "Express relationships precisely and prove conclusions."
|
| ),
|
| keywords=["theorem", "proof", "axiom", "set", "function", "topology",
|
| "algebra", "geometry", "formal", "lemma"],
|
| complementary=["newton", "quantum"],
|
| domain="mathematical",
|
| ),
|
| "bias_mitigation": Perspective(
|
| name="bias_mitigation",
|
| display_name="Bias Mitigation (Fairness Audit)",
|
| adapter=None,
|
| system_prompt=(
|
| "You are Codette, specifically focused on detecting and mitigating "
|
| "cognitive and algorithmic biases. Examine reasoning for confirmation "
|
| "bias, anchoring, availability heuristic, and structural inequities. "
|
| "Ensure fair, balanced, and inclusive conclusions."
|
| ),
|
| keywords=["bias", "fair", "equitable", "inclusive", "discrimination",
|
| "prejudice", "stereotype", "balanced", "audit"],
|
| complementary=["philosophy", "empathy"],
|
| domain="ethical",
|
| ),
|
| }
|
|
|
|
|
| ADAPTER_FALLBACK = {
|
| "human_intuition": "empathy",
|
| "resilient_kindness": "empathy",
|
| "mathematical": "newton",
|
| "bias_mitigation": "consciousness",
|
| }
|
|
|
|
|
| def get_perspective(name: str) -> Optional[Perspective]:
|
| """Get a perspective by name."""
|
| return PERSPECTIVES.get(name)
|
|
|
|
|
| def get_adapter_for_perspective(name: str) -> Optional[str]:
|
| """Get the LoRA adapter name for a perspective (with fallback)."""
|
| p = PERSPECTIVES.get(name)
|
| if p is None:
|
| return None
|
| return p.adapter or ADAPTER_FALLBACK.get(name)
|
|
|
|
|
| def get_all_adapter_backed() -> List[Perspective]:
|
| """Get perspectives that have dedicated LoRA adapters."""
|
| return [p for p in PERSPECTIVES.values() if p.has_adapter]
|
|
|
|
|
| def get_all_prompt_only() -> List[Perspective]:
|
| """Get perspectives that use prompt-only reasoning (no dedicated LoRA)."""
|
| return [p for p in PERSPECTIVES.values() if not p.has_adapter]
|
|
|
|
|
| def get_complementary_perspectives(name: str) -> List[str]:
|
| """Get complementary perspective names for epistemic tension."""
|
| p = PERSPECTIVES.get(name)
|
| return p.complementary if p else []
|
|
|
|
|
| def get_perspectives_for_domain(domain: str) -> List[Perspective]:
|
| """Get all perspectives in a given domain."""
|
| return [p for p in PERSPECTIVES.values() if p.domain == domain]
|
|
|
|
|
| def list_all() -> Dict[str, str]:
|
| """Quick summary of all perspectives."""
|
| return {
|
| name: f"{'[LoRA]' if p.has_adapter else '[prompt]'} {p.display_name}"
|
| for name, p in PERSPECTIVES.items()
|
| }
|
|
|