[{"data":1,"prerenderedAt":6417},["ShallowReactive",2],{"search-sections-cogito":3,"nav-cogito":354,"content-tree-cogito":381,"footer-resources":393,"content-/v0.0.6/reference/api":3215,"surround-/v0.0.6/reference/api":6415},[4,10,15,21,26,31,36,41,46,50,55,60,65,71,76,81,85,90,94,99,104,109,114,119,124,129,134,139,143,147,151,155,160,165,170,175,180,185,190,195,199,204,209,213,218,222,226,230,236,241,245,249,253,258,263,268,273,278,282,287,292,296,301,305,310,315,320,324,329,334,339,344,349],{"id":5,"title":6,"titles":7,"content":8,"level":9},"/v0.0.6/overview","Overview",[],"Introduction to cogito - LLM-powered reasoning chains for Go",1,{"id":11,"title":12,"titles":13,"content":14,"level":9},"/v0.0.6/overview#cogito","cogito",[],"LLM-powered reasoning chains for Go.",{"id":16,"title":17,"titles":18,"content":19,"level":20},"/v0.0.6/overview#what-is-cogito","What is cogito?",[12],"cogito provides a framework for building autonomous systems that reason and adapt. It implements a Thought-Note architecture where: Thought represents a reasoning context that accumulates information across pipeline stepsNote captures atomic units of information as key-value pairs with metadata",2,{"id":22,"title":23,"titles":24,"content":25,"level":20},"/v0.0.6/overview#key-features","Key Features",[12],"Composable reasoning - Chain primitives like Decide, Analyze, Categorize into pipelinesContext accumulation - Each step builds on previous reasoningTwo-phase reasoning - Deterministic decisions with optional creative introspectionPipeline integration - Built on pipz for orchestrationObservable - Emits capitan signals throughout executionExtensible - Implement custom primitives for domain-specific reasoning",{"id":27,"title":28,"titles":29,"content":30,"level":20},"/v0.0.6/overview#when-to-use-cogito","When to Use cogito",[12],"cogito is ideal for: Customer support automation with context-aware routingDocument analysis with semantic categorizationDecision systems requiring audit trailsMulti-step reasoning pipelines",{"id":32,"title":33,"titles":34,"content":35,"level":20},"/v0.0.6/overview#architecture","Architecture",[12],"┌─────────────────────────────────────────────────────────┐\n│                        Pipeline                          │\n│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐ │\n│  │ Analyze  │──│ Decide   │──│Categorize│──│  Assess  │ │\n│  └──────────┘  └──────────┘  └──────────┘  └──────────┘ │\n└─────────────────────────────────────────────────────────┘\n                           │\n                           ▼\n┌─────────────────────────────────────────────────────────┐\n│                       Thought                            │\n│  ┌────────────────────────────────────────────────────┐ │\n│  │ Notes: [input, analysis, decision, category, ...]  │ │\n│  │ Session: LLM conversation state                    │ │\n│  └────────────────────────────────────────────────────┘ │\n└─────────────────────────────────────────────────────────┘",{"id":37,"title":38,"titles":39,"content":40,"level":20},"/v0.0.6/overview#next-steps","Next Steps",[12],"Quickstart - Get started in 5 minutesCore Concepts - Understand Thought and NoteArchitecture - Deep dive into system design",{"id":42,"title":43,"titles":44,"content":45,"level":9},"/v0.0.6/learn/quickstart","Quickstart",[],"Get started with cogito in 5 minutes",{"id":47,"title":43,"titles":48,"content":49,"level":9},"/v0.0.6/learn/quickstart#quickstart",[],"Get cogito running in your project in 5 minutes.",{"id":51,"title":52,"titles":53,"content":54,"level":20},"/v0.0.6/learn/quickstart#prerequisites","Prerequisites",[43],"Go 1.24 or laterAn LLM provider (OpenAI, Anthropic, or compatible)",{"id":56,"title":57,"titles":58,"content":59,"level":20},"/v0.0.6/learn/quickstart#installation","Installation",[43],"go get github.com/zoobz-io/cogito",{"id":61,"title":62,"titles":63,"content":64,"level":20},"/v0.0.6/learn/quickstart#basic-usage","Basic Usage",[43],"",{"id":66,"title":67,"titles":68,"content":69,"level":70},"/v0.0.6/learn/quickstart#_1-configure-provider","1. Configure Provider",[43,62],"package main\n\nimport (\n    \"context\"\n    \"github.com/zoobz-io/cogito\"\n    \"github.com/zoobz-io/zyn/provider/openai\"\n)\n\nfunc main() {\n    // Set up LLM provider\n    provider := openai.New(os.Getenv(\"OPENAI_API_KEY\"))\n    cogito.SetProvider(provider)\n}",3,{"id":72,"title":73,"titles":74,"content":75,"level":70},"/v0.0.6/learn/quickstart#_2-create-and-process-a-thought","2. Create and Process a Thought",[43,62],"func processTicket(ctx context.Context, ticketText string) error {\n    // Create a thought\n    thought := cogito.New(ctx, \"triage support ticket\")\n\n    // Add initial context\n    thought.SetContent(ctx, \"ticket\", ticketText, \"input\")\n\n    // Build a pipeline\n    pipeline := cogito.Sequence(pipz.NewIdentity(\"ticket-triage\", \"Triage support tickets\"),\n        cogito.NewAnalyze[TicketData](\"parse\", \"extract customer info and issue\"),\n        cogito.NewCategorize(\"category\", \"what type of issue?\",\n            []string{\"billing\", \"technical\", \"account\"}),\n        cogito.NewDecide(\"escalate\", \"should this be escalated?\").\n            WithIntrospection(),\n    )\n\n    // Process\n    result, err := pipeline.Process(ctx, thought)\n    if err != nil {\n        return err\n    }\n\n    // Read results\n    category, _ := result.GetContent(\"category\")\n    escalate, _ := result.GetContent(\"escalate\")\n\n    fmt.Printf(\"Category: %s, Escalate: %s\\n\", category, escalate)\n    return nil\n}",{"id":77,"title":78,"titles":79,"content":80,"level":20},"/v0.0.6/learn/quickstart#complete-example","Complete Example",[43],"package main\n\nimport (\n    \"context\"\n    \"fmt\"\n    \"log\"\n    \"os\"\n\n    \"github.com/zoobz-io/cogito\"\n    \"github.com/zoobz-io/zyn/provider/openai\"\n)\n\ntype TicketData struct {\n    CustomerName string `json:\"customer_name\"`\n    Issue        string `json:\"issue\"`\n    Urgency      string `json:\"urgency\"`\n}\n\nfunc main() {\n    ctx := context.Background()\n\n    // Configure provider\n    provider := openai.New(os.Getenv(\"OPENAI_API_KEY\"))\n    cogito.SetProvider(provider)\n\n    // Create thought\n    thought := cogito.New(ctx, \"analyse feedback\")\n\n    // Add input\n    thought.SetContent(ctx, \"feedback\", \"Your product is amazing!\", \"input\")\n\n    // Simple decision\n    decide := cogito.NewDecide(\"positive\", \"is this positive feedback?\")\n    result, err := decide.Process(ctx, thought)\n    if err != nil {\n        log.Fatal(err)\n    }\n\n    positive, _ := result.GetContent(\"positive\")\n    fmt.Printf(\"Positive feedback: %s\\n\", positive)\n}",{"id":82,"title":38,"titles":83,"content":84,"level":20},"/v0.0.6/learn/quickstart#next-steps",[43],"Core Concepts - Understand Thought and NoteArchitecture - System design deep diveAPI Reference - Complete API documentation html pre.shiki code .sUt3r, html code.shiki .sUt3r{--shiki-default:var(--shiki-keyword)}html pre.shiki code .sYBwO, html code.shiki .sYBwO{--shiki-default:var(--shiki-type)}html pre.shiki code .soy-K, html code.shiki .soy-K{--shiki-default:#BBBBBB}html pre.shiki code .sxAnc, html code.shiki .sxAnc{--shiki-default:var(--shiki-string)}html pre.shiki code .s5klm, html code.shiki .s5klm{--shiki-default:var(--shiki-function)}html pre.shiki code .sq5bi, html code.shiki .sq5bi{--shiki-default:var(--shiki-punctuation)}html pre.shiki code .sLkEo, html code.shiki .sLkEo{--shiki-default:var(--shiki-comment)}html pre.shiki code .sh8_p, html code.shiki .sh8_p{--shiki-default:var(--shiki-text)}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sSYET, html code.shiki .sSYET{--shiki-default:var(--shiki-parameter)}html pre.shiki code .sW3Qg, html code.shiki .sW3Qg{--shiki-default:var(--shiki-operator)}html pre.shiki code .scyPU, html code.shiki .scyPU{--shiki-default:var(--shiki-placeholder)}html pre.shiki code .suWN2, html code.shiki .suWN2{--shiki-default:var(--shiki-tag)}html pre.shiki code .sBGCq, html code.shiki .sBGCq{--shiki-default:var(--shiki-property)}",{"id":86,"title":87,"titles":88,"content":89,"level":9},"/v0.0.6/learn/concepts","Core Concepts",[],"Understanding Thought and Note in cogito",{"id":91,"title":87,"titles":92,"content":93,"level":9},"/v0.0.6/learn/concepts#core-concepts",[],"cogito is built around two core concepts: Thought and Note.",{"id":95,"title":96,"titles":97,"content":98,"level":20},"/v0.0.6/learn/concepts#thought","Thought",[87],"A Thought represents the rolling context of a reasoning chain. It maintains: An append-only log of NotesA tracking cursor for published vs unpublished NotesAn LLM session for conversation continuity // Create a thought\nthought := cogito.New(ctx, \"analyse document\")\n\n// Thoughts have identity\nfmt.Println(thought.ID)       // Auto-generated UUID\nfmt.Println(thought.TraceID)  // Auto-generated trace ID\nfmt.Println(thought.Intent)   // \"analyse document\"",{"id":100,"title":101,"titles":102,"content":103,"level":70},"/v0.0.6/learn/concepts#thought-lifecycle","Thought Lifecycle",[87,96],"Creation - New() creates a thought with auto-generated IDNote Accumulation - Primitives add notes via SetContent()Processing - Primitives read context from notes, call LLM, write resultsPublication - Notes are marked as \"published\" after being sent to LLM",{"id":105,"title":106,"titles":107,"content":108,"level":70},"/v0.0.6/learn/concepts#cloning-for-parallel-processing","Cloning for Parallel Processing",[87,96],"Thoughts can be cloned for parallel execution: clone := thought.Clone()\n// Clone has independent notes and session\n// Modifications don't affect the original",{"id":110,"title":111,"titles":112,"content":113,"level":20},"/v0.0.6/learn/concepts#note","Note",[87],"Notes are atomic units of information in the reasoning chain: type Note struct {\n    ID        string            // Auto-generated UUID\n    ThoughtID string            // Parent thought\n    Key       string            // Lookup key\n    Content   string            // String content (everything is text in LLM space)\n    Metadata  map[string]string // Structured extension\n    Source    string            // Origin primitive\n    Created   time.Time         // Timestamp\n}",{"id":115,"title":116,"titles":117,"content":118,"level":70},"/v0.0.6/learn/concepts#adding-notes","Adding Notes",[87,111],"// Simple content\nthought.SetContent(ctx, \"summary\", \"Customer requests refund\", \"analyze\")\n\n// With metadata\nthought.SetNote(ctx, \"decision\", \"approved\", \"decide\", map[string]string{\n    \"confidence\": \"0.95\",\n    \"reasoning\":  \"Clear policy violation\",\n})",{"id":120,"title":121,"titles":122,"content":123,"level":70},"/v0.0.6/learn/concepts#reading-notes","Reading Notes",[87,111],"// Get content by key\ncontent, err := thought.GetContent(\"summary\")\n\n// Get full note\nnote, ok := thought.GetNote(\"decision\")\nif ok {\n    fmt.Println(note.Metadata[\"confidence\"])\n}\n\n// Get all notes\nnotes := thought.AllNotes()",{"id":125,"title":126,"titles":127,"content":128,"level":70},"/v0.0.6/learn/concepts#published-vs-unpublished","Published vs Unpublished",[87,111],"Notes track whether they've been sent to the LLM: // Get notes not yet sent to LLM\nunpublished := thought.GetUnpublishedNotes()\n\n// After processing, mark as published\nthought.MarkNotesPublished(ctx) This prevents redundant context in multi-step pipelines.",{"id":130,"title":131,"titles":132,"content":133,"level":20},"/v0.0.6/learn/concepts#provider","Provider",[87],"Providers handle LLM communication: type Provider interface {\n    Call(ctx context.Context, messages []zyn.Message, temperature float32) (*zyn.ProviderResponse, error)\n    Name() string\n}",{"id":135,"title":136,"titles":137,"content":138,"level":70},"/v0.0.6/learn/concepts#resolution-hierarchy","Resolution Hierarchy",[87,131],"Step-level: .WithProvider(p)Context: cogito.WithProvider(ctx, p)Global: cogito.SetProvider(p) // Global default\ncogito.SetProvider(defaultProvider)\n\n// Context override\nctx = cogito.WithProvider(ctx, specialProvider)\n\n// Step override\ndecide := cogito.NewDecide(\"key\", \"question\").WithProvider(customProvider)",{"id":140,"title":38,"titles":141,"content":142,"level":20},"/v0.0.6/learn/concepts#next-steps",[87],"Architecture - System design deep diveAPI Reference - Complete API documentation html pre.shiki code .sLkEo, html code.shiki .sLkEo{--shiki-default:var(--shiki-comment)}html pre.shiki code .sh8_p, html code.shiki .sh8_p{--shiki-default:var(--shiki-text)}html pre.shiki code .sq5bi, html code.shiki .sq5bi{--shiki-default:var(--shiki-punctuation)}html pre.shiki code .s5klm, html code.shiki .s5klm{--shiki-default:var(--shiki-function)}html pre.shiki code .sxAnc, html code.shiki .sxAnc{--shiki-default:var(--shiki-string)}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sUt3r, html code.shiki .sUt3r{--shiki-default:var(--shiki-keyword)}html pre.shiki code .sYBwO, html code.shiki .sYBwO{--shiki-default:var(--shiki-type)}html pre.shiki code .sBGCq, html code.shiki .sBGCq{--shiki-default:var(--shiki-property)}html pre.shiki code .sW3Qg, html code.shiki .sW3Qg{--shiki-default:var(--shiki-operator)}html pre.shiki code .sSYET, html code.shiki .sSYET{--shiki-default:var(--shiki-parameter)}",{"id":144,"title":33,"titles":145,"content":146,"level":9},"/v0.0.6/learn/architecture",[],"System design and architecture of cogito",{"id":148,"title":33,"titles":149,"content":150,"level":9},"/v0.0.6/learn/architecture#architecture",[],"This document describes the system design and architectural decisions in cogito.",{"id":152,"title":153,"titles":154,"content":64,"level":20},"/v0.0.6/learn/architecture#design-principles","Design Principles",[33],{"id":156,"title":157,"titles":158,"content":159,"level":70},"/v0.0.6/learn/architecture#_1-everything-is-text","1. Everything is Text",[33,153],"In LLM space, all information is fundamentally text-based. Notes store content as strings, and structured data is extracted through typed primitives like Analyze[T].",{"id":161,"title":162,"titles":163,"content":164,"level":70},"/v0.0.6/learn/architecture#_2-append-only-notes","2. Append-Only Notes",[33,153],"Thoughts maintain an append-only log of Notes. If a key is reused, the new note becomes the current value, but history is preserved. This enables: Audit trails of reasoningRollback to previous states",{"id":166,"title":167,"titles":168,"content":169,"level":70},"/v0.0.6/learn/architecture#_3-context-accumulation","3. Context Accumulation",[33,153],"Each primitive in a pipeline reads unpublished notes, sends them to the LLM, and marks them as published. This prevents redundant context while maintaining conversation flow.",{"id":171,"title":172,"titles":173,"content":174,"level":70},"/v0.0.6/learn/architecture#_4-two-phase-reasoning","4. Two-Phase Reasoning",[33,153],"Primitives support optional introspection: Reasoning Phase - Deterministic (temperature 0) for consistent outputsIntrospection Phase - Creative (temperature 0.7) for semantic summaries",{"id":176,"title":177,"titles":178,"content":179,"level":20},"/v0.0.6/learn/architecture#component-architecture","Component Architecture",[33],"┌─────────────────────────────────────────────────────────────────┐\n│                         Application                              │\n└─────────────────────────────────────────────────────────────────┘\n                                │\n                                ▼\n┌─────────────────────────────────────────────────────────────────┐\n│                          Pipeline                                │\n│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐   │\n│  │Sequence │ │ Filter  │ │ Switch  │ │Fallback │ │Concurrent│   │\n│  └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘   │\n└─────────────────────────────────────────────────────────────────┘\n                                │\n                                ▼\n┌─────────────────────────────────────────────────────────────────┐\n│                         Primitives                               │\n│  ┌────────┐ ┌────────┐ ┌──────────┐ ┌──────┐ ┌──────────┐      │\n│  │ Decide │ │Analyze │ │Categorize│ │Assess│ │Prioritize│      │\n│  └────────┘ └────────┘ └──────────┘ └──────┘ └──────────┘      │\n│  ┌──────┐ ┌────────┐ ┌────────┐                                 │\n│  │ Sift │ │Discern │ │Reflect │                                 │\n│  └──────┘ └────────┘ └────────┘                                 │\n└─────────────────────────────────────────────────────────────────┘\n                                │\n                                ▼\n┌─────────────────────────────────────────────────────────────────┐\n│                          Thought                                 │\n│  ┌───────────────────────────────────────────────────────────┐  │\n│  │ Notes[] │ Session │ PublishedCount │ Intent                │  │\n│  └───────────────────────────────────────────────────────────┘  │\n└─────────────────────────────────────────────────────────────────┘\n                                │\n                                ▼\n┌─────────────────────────────────────────────────────────────────┐\n│                       Infrastructure                             │\n│  ┌──────────┐  ┌──────────┐                                      │\n│  │ Provider │  │ Signals  │                                      │\n│  │ (LLM)    │  │(Capitan) │                                      │\n│  └──────────┘  └──────────┘                                      │\n└─────────────────────────────────────────────────────────────────┘",{"id":181,"title":182,"titles":183,"content":184,"level":20},"/v0.0.6/learn/architecture#primitive-processing-flow","Primitive Processing Flow",[33],"Each primitive follows the same pattern: ┌─────────────────────────────────────────────────────────────┐\n│                    Primitive.Process()                       │\n├─────────────────────────────────────────────────────────────┤\n│ 1. Get unpublished notes from Thought                        │\n│ 2. Render notes to context string                            │\n│ 3. Resolve provider (step → context → global)               │\n│ 4. Build prompt with context                                 │\n│ 5. Call provider (reasoning phase, temp=0)                   │\n│ 6. Parse structured response                                 │\n│ 7. Store result as Note                                      │\n│ 8. [Optional] Run introspection (temp=0.7)                   │\n│ 9. Mark notes as published                                   │\n│ 10. Emit signals                                             │\n│ 11. Return modified Thought                                  │\n└─────────────────────────────────────────────────────────────┘",{"id":186,"title":187,"titles":188,"content":189,"level":20},"/v0.0.6/learn/architecture#concurrency-model","Concurrency Model",[33],"Thoughts are safe for concurrent reads but not concurrent writes: // Safe: Concurrent reads\ngo func() { thought.GetContent(\"key1\") }()\ngo func() { thought.GetContent(\"key2\") }()\n\n// Unsafe: Concurrent writes\ngo func() { thought.SetContent(ctx, \"key1\", \"v1\", \"src\") }() // Don't do this\ngo func() { thought.SetContent(ctx, \"key2\", \"v2\", \"src\") }() // Don't do this\n\n// Safe: Clone for parallel processing\nclone1 := thought.Clone()\nclone2 := thought.Clone()\ngo func() { process(clone1) }()\ngo func() { process(clone2) }()",{"id":191,"title":192,"titles":193,"content":194,"level":20},"/v0.0.6/learn/architecture#observability","Observability",[33],"cogito emits capitan signals throughout execution: SignalDescriptionThoughtCreatedNew thought initialisedStepStartedPrimitive processing beganStepCompletedPrimitive processing succeededStepFailedPrimitive processing failedNoteAddedNote added to thoughtNotesPublishedNotes sent to LLM context",{"id":196,"title":197,"titles":198,"content":64,"level":20},"/v0.0.6/learn/architecture#extension-points","Extension Points",[33],{"id":200,"title":201,"titles":202,"content":203,"level":70},"/v0.0.6/learn/architecture#custom-primitives","Custom Primitives",[33,197],"Implement pipz.Chainable[*Thought]: type MyPrimitive struct {\n    key string\n}\n\nfunc (p *MyPrimitive) Process(ctx context.Context, t *cogito.Thought) (*cogito.Thought, error) {\n    // Read context\n    notes := t.GetUnpublishedNotes()\n\n    // Process with LLM\n    provider, _ := cogito.ResolveProvider(ctx, nil)\n    // ...\n\n    // Store result\n    t.SetContent(ctx, p.key, result, \"my_primitive\")\n    t.MarkNotesPublished(ctx)\n\n    return t, nil\n}\n\nfunc (p *MyPrimitive) Name() pipz.Name { return pipz.Name(p.key) }\nfunc (p *MyPrimitive) Close() error    { return nil }",{"id":205,"title":206,"titles":207,"content":208,"level":20},"/v0.0.6/learn/architecture#performance-considerations","Performance Considerations",[33],"Token Management - Use Compress/Truncate to limit context sizeParallel Execution - Use Converge for independent processing paths",{"id":210,"title":38,"titles":211,"content":212,"level":20},"/v0.0.6/learn/architecture#next-steps",[33],"API Reference - Complete API documentation html pre.shiki code .sLkEo, html code.shiki .sLkEo{--shiki-default:var(--shiki-comment)}html pre.shiki code .sW3Qg, html code.shiki .sW3Qg{--shiki-default:var(--shiki-operator)}html pre.shiki code .sUt3r, html code.shiki .sUt3r{--shiki-default:var(--shiki-keyword)}html pre.shiki code .sq5bi, html code.shiki .sq5bi{--shiki-default:var(--shiki-punctuation)}html pre.shiki code .sh8_p, html code.shiki .sh8_p{--shiki-default:var(--shiki-text)}html pre.shiki code .s5klm, html code.shiki .s5klm{--shiki-default:var(--shiki-function)}html pre.shiki code .sxAnc, html code.shiki .sxAnc{--shiki-default:var(--shiki-string)}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sYBwO, html code.shiki .sYBwO{--shiki-default:var(--shiki-type)}html pre.shiki code .sBGCq, html code.shiki .sBGCq{--shiki-default:var(--shiki-property)}html pre.shiki code .sSYET, html code.shiki .sSYET{--shiki-default:var(--shiki-parameter)}",{"id":214,"title":215,"titles":216,"content":217,"level":9},"/v0.0.6/reference/api","API Reference",[],"Complete API reference for cogito",{"id":219,"title":215,"titles":220,"content":221,"level":9},"/v0.0.6/reference/api#api-reference",[],"Complete API reference for cogito. For the most up-to-date documentation, see pkg.go.dev/github.com/zoobz-io/cogito.",{"id":223,"title":224,"titles":225,"content":64,"level":20},"/v0.0.6/reference/api#core-types","Core Types",[215],{"id":227,"title":96,"titles":228,"content":229,"level":70},"/v0.0.6/reference/api#thought",[215,224],"type Thought struct {\n    ID        string    // Auto-generated UUID\n    Intent    string    // Purpose of this thought\n    TraceID   string    // Unique trace identifier\n    ParentID  *string   // Parent thought (for branching)\n    Session   *Session  // LLM conversation state\n    CreatedAt time.Time\n    UpdatedAt time.Time\n}",{"id":231,"title":232,"titles":233,"content":234,"level":235},"/v0.0.6/reference/api#constructors","Constructors",[215,224,96],"func New(ctx context.Context, intent string) *Thought\nfunc NewWithTrace(ctx context.Context, intent, traceID string) *Thought",4,{"id":237,"title":238,"titles":239,"content":240,"level":235},"/v0.0.6/reference/api#methods","Methods",[215,224,96],"func (t *Thought) AddNote(ctx context.Context, note Note) error\nfunc (t *Thought) SetContent(ctx context.Context, key, content, source string) error\nfunc (t *Thought) SetNote(ctx context.Context, key, content, source string, metadata map[string]string) error\nfunc (t *Thought) GetNote(key string) (Note, bool)\nfunc (t *Thought) GetContent(key string) (string, error)\nfunc (t *Thought) GetMetadata(key, field string) (string, error)\nfunc (t *Thought) GetLatestNote() (Note, bool)\nfunc (t *Thought) AllNotes() []Note\nfunc (t *Thought) GetBool(key string) (bool, error)\nfunc (t *Thought) GetFloat(key string) (float64, error)\nfunc (t *Thought) GetInt(key string) (int, error)\nfunc (t *Thought) Clone() *Thought\nfunc (t *Thought) PublishedCount() int\nfunc (t *Thought) GetUnpublishedNotes() []Note\nfunc (t *Thought) MarkNotesPublished(ctx context.Context)",{"id":242,"title":111,"titles":243,"content":244,"level":70},"/v0.0.6/reference/api#note",[215,224],"type Note struct {\n    ID        string\n    ThoughtID string\n    Key       string\n    Content   string\n    Metadata  map[string]string\n    Source    string\n    Created   time.Time\n}",{"id":246,"title":247,"titles":248,"content":64,"level":20},"/v0.0.6/reference/api#primitives","Primitives",[215],{"id":250,"title":251,"titles":252,"content":64,"level":70},"/v0.0.6/reference/api#decision-analysis","Decision & Analysis",[215,247],{"id":254,"title":255,"titles":256,"content":257,"level":235},"/v0.0.6/reference/api#decide","Decide",[215,247,251],"Binary yes/no decisions with confidence scores. func NewDecide(key, question string) *Decide\nfunc (d *Decide) WithProvider(p Provider) *Decide\nfunc (d *Decide) WithIntrospection() *Decide\nfunc (d *Decide) WithSummaryKey(key string) *Decide\nfunc (d *Decide) WithReasoningTemperature(t float32) *Decide\nfunc (d *Decide) WithIntrospectionTemperature(t float32) *Decide\nfunc (d *Decide) Scan(t *Thought) (*DecideResponse, error)",{"id":259,"title":260,"titles":261,"content":262,"level":235},"/v0.0.6/reference/api#analyze","Analyze",[215,247,251],"Extract structured data into typed results. func NewAnalyze[T any](key, prompt string) *Analyze[T]\nfunc (a *Analyze[T]) WithProvider(p Provider) *Analyze[T]\nfunc (a *Analyze[T]) WithIntrospection() *Analyze[T]\nfunc (a *Analyze[T]) Scan(t *Thought) (*T, error)",{"id":264,"title":265,"titles":266,"content":267,"level":235},"/v0.0.6/reference/api#categorize","Categorize",[215,247,251],"Classify into one of N categories. func NewCategorize(key, question string, categories []string) *Categorize\nfunc (c *Categorize) WithProvider(p Provider) *Categorize\nfunc (c *Categorize) WithIntrospection() *Categorize\nfunc (c *Categorize) Scan(t *Thought) (*CategorizeResponse, error)",{"id":269,"title":270,"titles":271,"content":272,"level":235},"/v0.0.6/reference/api#assess","Assess",[215,247,251],"Sentiment analysis with emotional scoring. func NewAssess(key, question string) *Assess\nfunc (a *Assess) WithProvider(p Provider) *Assess\nfunc (a *Assess) WithIntrospection() *Assess\nfunc (a *Assess) Scan(t *Thought) (*AssessResponse, error)",{"id":274,"title":275,"titles":276,"content":277,"level":235},"/v0.0.6/reference/api#prioritize","Prioritize",[215,247,251],"Rank items by specified criteria. func NewPrioritize(key, criteria string, items []string) *Prioritize\nfunc (p *Prioritize) WithProvider(provider Provider) *Prioritize\nfunc (p *Prioritize) WithIntrospection() *Prioritize\nfunc (p *Prioritize) Scan(t *Thought) (*PrioritizeResponse, error)",{"id":279,"title":280,"titles":281,"content":64,"level":70},"/v0.0.6/reference/api#control-flow","Control Flow",[215,247],{"id":283,"title":284,"titles":285,"content":286,"level":235},"/v0.0.6/reference/api#sift","Sift",[215,247,280],"Semantic gate - LLM decides whether to execute wrapped processor. func NewSift(name, criteria string, processor pipz.Chainable[*Thought]) *Sift\nfunc (s *Sift) WithProvider(p Provider) *Sift",{"id":288,"title":289,"titles":290,"content":291,"level":235},"/v0.0.6/reference/api#discern","Discern",[215,247,280],"Semantic router - LLM classifies and routes to different processors. func NewDiscern(name, question string) *Discern\nfunc (d *Discern) AddRoute(category string, processor pipz.Chainable[*Thought]) *Discern\nfunc (d *Discern) WithProvider(p Provider) *Discern",{"id":293,"title":294,"titles":295,"content":64,"level":70},"/v0.0.6/reference/api#reflection","Reflection",[215,247],{"id":297,"title":298,"titles":299,"content":300,"level":235},"/v0.0.6/reference/api#reflect","Reflect",[215,247,294],"Consolidate current Thought's Notes into a summary. func NewReflect(key string) *Reflect\nfunc (r *Reflect) WithPrompt(prompt string) *Reflect\nfunc (r *Reflect) WithProvider(p Provider) *Reflect\nfunc (r *Reflect) WithUnpublishedOnly() *Reflect",{"id":302,"title":303,"titles":304,"content":64,"level":70},"/v0.0.6/reference/api#session-management","Session Management",[215,247],{"id":306,"title":307,"titles":308,"content":309,"level":235},"/v0.0.6/reference/api#reset","Reset",[215,247,303],"Clear session state. func NewReset(key string) *Reset\nfunc (r *Reset) WithSystemMessage(msg string) *Reset\nfunc (r *Reset) WithPreserveNote(noteKey string) *Reset",{"id":311,"title":312,"titles":313,"content":314,"level":235},"/v0.0.6/reference/api#compress","Compress",[215,247,303],"LLM-summarise session history to reduce tokens. func NewCompress(targetMessages int) *Compress\nfunc (c *Compress) WithProvider(p Provider) *Compress",{"id":316,"title":317,"titles":318,"content":319,"level":235},"/v0.0.6/reference/api#truncate","Truncate",[215,247,303],"Sliding window session trimming (no LLM). func NewTruncate(keepMessages int) *Truncate",{"id":321,"title":322,"titles":323,"content":64,"level":70},"/v0.0.6/reference/api#synthesis","Synthesis",[215,247],{"id":325,"title":326,"titles":327,"content":328,"level":235},"/v0.0.6/reference/api#amplify","Amplify",[215,247,322],"Iterative refinement until criteria met. func NewAmplify(key, criteria string, processor pipz.Chainable[*Thought]) *Amplify\nfunc (a *Amplify) WithMaxIterations(n int) *Amplify\nfunc (a *Amplify) WithProvider(p Provider) *Amplify",{"id":330,"title":331,"titles":332,"content":333,"level":235},"/v0.0.6/reference/api#converge","Converge",[215,247,322],"Parallel execution with semantic synthesis. func NewConverge(key, synthesisPrompt string, processors ...pipz.Chainable[*Thought]) *Converge\nfunc (c *Converge) WithProvider(p Provider) *Converge",{"id":335,"title":336,"titles":337,"content":338,"level":20},"/v0.0.6/reference/api#pipeline-helpers","Pipeline Helpers",[215],"func Sequence(identity pipz.Identity, processors ...pipz.Chainable[*Thought]) *pipz.Sequence[*Thought]\nfunc Filter(identity pipz.Identity, predicate func(context.Context, *Thought) bool, processor pipz.Chainable[*Thought]) *pipz.Filter[*Thought]\nfunc Switch(identity pipz.Identity, condition func(context.Context, *Thought) string) *pipz.Switch[*Thought]\nfunc Gate(identity pipz.Identity, predicate func(context.Context, *Thought) bool) pipz.Processor[*Thought]\nfunc Fallback(identity pipz.Identity, processors ...pipz.Chainable[*Thought]) *pipz.Fallback[*Thought]\nfunc Retry(identity pipz.Identity, processor pipz.Chainable[*Thought], maxAttempts int) *pipz.Retry[*Thought]\nfunc Backoff(identity pipz.Identity, processor pipz.Chainable[*Thought], maxAttempts int, baseDelay time.Duration) *pipz.Backoff[*Thought]\nfunc Timeout(identity pipz.Identity, processor pipz.Chainable[*Thought], duration time.Duration) *pipz.Timeout[*Thought]\nfunc Concurrent(identity pipz.Identity, reducer func(*Thought, map[pipz.Identity]*Thought, map[pipz.Identity]error) *Thought, processors ...pipz.Chainable[*Thought]) *pipz.Concurrent[*Thought]\nfunc Race(identity pipz.Identity, processors ...pipz.Chainable[*Thought]) *pipz.Race[*Thought]",{"id":340,"title":341,"titles":342,"content":343,"level":20},"/v0.0.6/reference/api#provider-management","Provider Management",[215],"func SetProvider(p Provider)\nfunc GetProvider() Provider\nfunc WithProvider(ctx context.Context, p Provider) context.Context\nfunc ProviderFromContext(ctx context.Context) (Provider, bool)\nfunc ResolveProvider(ctx context.Context, stepProvider Provider) (Provider, error)",{"id":345,"title":346,"titles":347,"content":348,"level":20},"/v0.0.6/reference/api#utilities","Utilities",[215],"func RenderNotesToContext(notes []Note) string",{"id":350,"title":351,"titles":352,"content":353,"level":20},"/v0.0.6/reference/api#configuration","Configuration",[215],"var DefaultIntrospection = false\nvar DefaultReasoningTemperature = 0.0\nvar DefaultIntrospectionTemperature = 0.7 html pre.shiki code .sUt3r, html code.shiki .sUt3r{--shiki-default:var(--shiki-keyword)}html pre.shiki code .sYBwO, html code.shiki .sYBwO{--shiki-default:var(--shiki-type)}html pre.shiki code .sq5bi, html code.shiki .sq5bi{--shiki-default:var(--shiki-punctuation)}html pre.shiki code .sBGCq, html code.shiki .sBGCq{--shiki-default:var(--shiki-property)}html pre.shiki code .sLkEo, html code.shiki .sLkEo{--shiki-default:var(--shiki-comment)}html pre.shiki code .sW3Qg, html code.shiki .sW3Qg{--shiki-default:var(--shiki-operator)}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s5klm, html code.shiki .s5klm{--shiki-default:var(--shiki-function)}html pre.shiki code .sSYET, html code.shiki .sSYET{--shiki-default:var(--shiki-parameter)}html pre.shiki code .sh8_p, html code.shiki .sh8_p{--shiki-default:var(--shiki-text)}html pre.shiki code .sMAmT, html code.shiki .sMAmT{--shiki-default:var(--shiki-number)}",[355],{"title":356,"path":357,"stem":358,"children":359,"page":373},"V006","/v0.0.6","v0.0.6",[360,362,374],{"title":6,"path":5,"stem":361,"description":8},"v0.0.6/1.overview",{"title":363,"path":364,"stem":365,"children":366,"page":373},"Learn","/v0.0.6/learn","v0.0.6/2.learn",[367,369,371],{"title":43,"path":42,"stem":368,"description":45},"v0.0.6/2.learn/1.quickstart",{"title":87,"path":86,"stem":370,"description":89},"v0.0.6/2.learn/2.concepts",{"title":33,"path":144,"stem":372,"description":146},"v0.0.6/2.learn/3.architecture",false,{"title":375,"path":376,"stem":377,"children":378,"page":373},"Reference","/v0.0.6/reference","v0.0.6/5.reference",[379],{"title":215,"path":214,"stem":380,"description":217},"v0.0.6/5.reference/1.api",[382],{"title":356,"path":357,"stem":358,"children":383,"page":373},[384,385,390],{"title":6,"path":5,"stem":361},{"title":363,"path":364,"stem":365,"children":386,"page":373},[387,388,389],{"title":43,"path":42,"stem":368},{"title":87,"path":86,"stem":370},{"title":33,"path":144,"stem":372},{"title":375,"path":376,"stem":377,"children":391,"page":373},[392],{"title":215,"path":214,"stem":380},[394,2134,2620],{"id":395,"title":396,"body":397,"description":64,"extension":2127,"icon":2128,"meta":2129,"navigation":576,"path":2130,"seo":2131,"stem":2132,"__hash__":2133},"resources/readme.md","README",{"type":398,"value":399,"toc":2111},"minimark",[400,403,471,474,477,482,485,880,888,892,909,912,916,1605,1609,1711,1715,1771,1774,1777,1940,1943,1952,1956,1964,1968,1992,1996,2034,2038,2061,2064,2086,2090,2098,2101,2107],[401,402,12],"h1",{"id":12},[404,405,406,417,425,433,441,449,456,463],"p",{},[407,408,412],"a",{"href":409,"rel":410},"https://github.com/zoobz-io/cogito/actions/workflows/ci.yml",[411],"nofollow",[413,414],"img",{"alt":415,"src":416},"CI Status","https://github.com/zoobz-io/cogito/workflows/CI/badge.svg",[407,418,421],{"href":419,"rel":420},"https://codecov.io/gh/zoobz-io/cogito",[411],[413,422],{"alt":423,"src":424},"codecov","https://codecov.io/gh/zoobz-io/cogito/graph/badge.svg?branch=main",[407,426,429],{"href":427,"rel":428},"https://goreportcard.com/report/github.com/zoobz-io/cogito",[411],[413,430],{"alt":431,"src":432},"Go Report Card","https://goreportcard.com/badge/github.com/zoobz-io/cogito",[407,434,437],{"href":435,"rel":436},"https://github.com/zoobz-io/cogito/security/code-scanning",[411],[413,438],{"alt":439,"src":440},"CodeQL","https://github.com/zoobz-io/cogito/workflows/CodeQL/badge.svg",[407,442,445],{"href":443,"rel":444},"https://pkg.go.dev/github.com/zoobz-io/cogito",[411],[413,446],{"alt":447,"src":448},"Go Reference","https://pkg.go.dev/badge/github.com/zoobz-io/cogito.svg",[407,450,452],{"href":451},"LICENSE",[413,453],{"alt":454,"src":455},"License","https://img.shields.io/github/license/zoobz-io/cogito",[407,457,459],{"href":458},"go.mod",[413,460],{"alt":461,"src":462},"Go Version","https://img.shields.io/github/go-mod/go-version/zoobz-io/cogito",[407,464,467],{"href":465,"rel":466},"https://github.com/zoobz-io/cogito/releases",[411],[413,468],{"alt":469,"src":470},"Release","https://img.shields.io/github/v/release/zoobz-io/cogito",[404,472,473],{},"LLM-powered reasoning chains with semantic memory for Go.",[404,475,476],{},"Build autonomous systems that reason, remember, and adapt.",[478,479,481],"h2",{"id":480},"reasoning-that-accumulates","Reasoning That Accumulates",[404,483,484],{},"A Thought is a reasoning context. Primitives read it, reason via LLM, and contribute Notes back. Each step sees what came before.",[486,487,491],"pre",{"className":488,"code":489,"language":490,"meta":64,"style":64},"language-go shiki shiki-themes","thought, _ := cogito.New(ctx, memory, \"should we approve this refund?\")\nthought.SetContent(ctx, \"request\", customerEmail, \"input\")\n\n// Pipeline: each primitive builds on accumulated context\npipeline := cogito.Sequence(\"refund-decision\",\n    cogito.NewAnalyze[RefundRequest](\"parse\", \"extract order ID, amount, and reason\"),\n    cogito.NewSeek(\"history\", \"this customer's previous refund requests\"),\n    cogito.NewDecide(\"approve\", \"does this meet our refund policy?\").\n        WithIntrospection(),\n)\n\nresult, _ := pipeline.Process(ctx, thought)\n\n// Every step left a Note — an auditable chain of reasoning\nfor _, note := range result.AllNotes() {\n    fmt.Printf(\"[%s] %s: %s\\n\", note.Source, note.Key, note.Content)\n}\n// [input] request: \"I'd like a refund for order #12345...\"\n// [analyze] parse: {\"order_id\": \"12345\", \"amount\": 49.99, \"reason\": \"arrived damaged\"}\n// [seek] history: \"No previous refund requests found for this customer\"\n// [decide] approve: \"yes\"\n// [introspect] approve: \"Approved: first-time request, clear damage claim, within policy window\"\n","go",[492,493,494,542,572,578,584,607,639,661,684,693,698,703,734,739,745,778,844,850,856,862,868,874],"code",{"__ignoreMap":64},[495,496,498,502,506,509,512,515,518,522,525,528,530,533,535,539],"span",{"class":497,"line":9},"line",[495,499,501],{"class":500},"sh8_p","thought",[495,503,505],{"class":504},"sq5bi",",",[495,507,508],{"class":500}," _",[495,510,511],{"class":500}," :=",[495,513,514],{"class":500}," cogito",[495,516,517],{"class":504},".",[495,519,521],{"class":520},"s5klm","New",[495,523,524],{"class":504},"(",[495,526,527],{"class":500},"ctx",[495,529,505],{"class":504},[495,531,532],{"class":500}," memory",[495,534,505],{"class":504},[495,536,538],{"class":537},"sxAnc"," \"should we approve this refund?\"",[495,540,541],{"class":504},")\n",[495,543,544,546,548,551,553,555,557,560,562,565,567,570],{"class":497,"line":20},[495,545,501],{"class":500},[495,547,517],{"class":504},[495,549,550],{"class":520},"SetContent",[495,552,524],{"class":504},[495,554,527],{"class":500},[495,556,505],{"class":504},[495,558,559],{"class":537}," \"request\"",[495,561,505],{"class":504},[495,563,564],{"class":500}," customerEmail",[495,566,505],{"class":504},[495,568,569],{"class":537}," \"input\"",[495,571,541],{"class":504},[495,573,574],{"class":497,"line":70},[495,575,577],{"emptyLinePlaceholder":576},true,"\n",[495,579,580],{"class":497,"line":235},[495,581,583],{"class":582},"sLkEo","// Pipeline: each primitive builds on accumulated context\n",[495,585,587,590,592,594,596,599,601,604],{"class":497,"line":586},5,[495,588,589],{"class":500},"pipeline",[495,591,511],{"class":500},[495,593,514],{"class":500},[495,595,517],{"class":504},[495,597,598],{"class":520},"Sequence",[495,600,524],{"class":504},[495,602,603],{"class":537},"\"refund-decision\"",[495,605,606],{"class":504},",\n",[495,608,610,613,615,618,621,625,628,631,633,636],{"class":497,"line":609},6,[495,611,612],{"class":500},"    cogito",[495,614,517],{"class":504},[495,616,617],{"class":520},"NewAnalyze",[495,619,620],{"class":504},"[",[495,622,624],{"class":623},"sYBwO","RefundRequest",[495,626,627],{"class":504},"](",[495,629,630],{"class":537},"\"parse\"",[495,632,505],{"class":504},[495,634,635],{"class":537}," \"extract order ID, amount, and reason\"",[495,637,638],{"class":504},"),\n",[495,640,642,644,646,649,651,654,656,659],{"class":497,"line":641},7,[495,643,612],{"class":500},[495,645,517],{"class":504},[495,647,648],{"class":520},"NewSeek",[495,650,524],{"class":504},[495,652,653],{"class":537},"\"history\"",[495,655,505],{"class":504},[495,657,658],{"class":537}," \"this customer's previous refund requests\"",[495,660,638],{"class":504},[495,662,664,666,668,671,673,676,678,681],{"class":497,"line":663},8,[495,665,612],{"class":500},[495,667,517],{"class":504},[495,669,670],{"class":520},"NewDecide",[495,672,524],{"class":504},[495,674,675],{"class":537},"\"approve\"",[495,677,505],{"class":504},[495,679,680],{"class":537}," \"does this meet our refund policy?\"",[495,682,683],{"class":504},").\n",[495,685,687,690],{"class":497,"line":686},9,[495,688,689],{"class":520},"        WithIntrospection",[495,691,692],{"class":504},"(),\n",[495,694,696],{"class":497,"line":695},10,[495,697,541],{"class":504},[495,699,701],{"class":497,"line":700},11,[495,702,577],{"emptyLinePlaceholder":576},[495,704,706,709,711,713,715,718,720,723,725,727,729,732],{"class":497,"line":705},12,[495,707,708],{"class":500},"result",[495,710,505],{"class":504},[495,712,508],{"class":500},[495,714,511],{"class":500},[495,716,717],{"class":500}," pipeline",[495,719,517],{"class":504},[495,721,722],{"class":520},"Process",[495,724,524],{"class":504},[495,726,527],{"class":500},[495,728,505],{"class":504},[495,730,731],{"class":500}," thought",[495,733,541],{"class":504},[495,735,737],{"class":497,"line":736},13,[495,738,577],{"emptyLinePlaceholder":576},[495,740,742],{"class":497,"line":741},14,[495,743,744],{"class":582},"// Every step left a Note — an auditable chain of reasoning\n",[495,746,748,752,754,756,759,761,764,767,769,772,775],{"class":497,"line":747},15,[495,749,751],{"class":750},"sW3Qg","for",[495,753,508],{"class":500},[495,755,505],{"class":504},[495,757,758],{"class":500}," note",[495,760,511],{"class":500},[495,762,763],{"class":750}," range",[495,765,766],{"class":500}," result",[495,768,517],{"class":504},[495,770,771],{"class":520},"AllNotes",[495,773,774],{"class":504},"()",[495,776,777],{"class":504}," {\n",[495,779,781,784,786,789,791,794,798,801,803,806,808,812,815,817,819,821,824,826,828,830,833,835,837,839,842],{"class":497,"line":780},16,[495,782,783],{"class":500},"    fmt",[495,785,517],{"class":504},[495,787,788],{"class":520},"Printf",[495,790,524],{"class":504},[495,792,793],{"class":537},"\"[",[495,795,797],{"class":796},"scyPU","%s",[495,799,800],{"class":537},"] ",[495,802,797],{"class":796},[495,804,805],{"class":537},": ",[495,807,797],{"class":796},[495,809,811],{"class":810},"suWN2","\\n",[495,813,814],{"class":537},"\"",[495,816,505],{"class":504},[495,818,758],{"class":500},[495,820,517],{"class":504},[495,822,823],{"class":500},"Source",[495,825,505],{"class":504},[495,827,758],{"class":500},[495,829,517],{"class":504},[495,831,832],{"class":500},"Key",[495,834,505],{"class":504},[495,836,758],{"class":500},[495,838,517],{"class":504},[495,840,841],{"class":500},"Content",[495,843,541],{"class":504},[495,845,847],{"class":497,"line":846},17,[495,848,849],{"class":504},"}\n",[495,851,853],{"class":497,"line":852},18,[495,854,855],{"class":582},"// [input] request: \"I'd like a refund for order #12345...\"\n",[495,857,859],{"class":497,"line":858},19,[495,860,861],{"class":582},"// [analyze] parse: {\"order_id\": \"12345\", \"amount\": 49.99, \"reason\": \"arrived damaged\"}\n",[495,863,865],{"class":497,"line":864},20,[495,866,867],{"class":582},"// [seek] history: \"No previous refund requests found for this customer\"\n",[495,869,871],{"class":497,"line":870},21,[495,872,873],{"class":582},"// [decide] approve: \"yes\"\n",[495,875,877],{"class":497,"line":876},22,[495,878,879],{"class":582},"// [introspect] approve: \"Approved: first-time request, clear damage claim, within policy window\"\n",[404,881,882,883,887],{},"Introspection adds a semantic summary explaining ",[884,885,886],"em",{},"why"," — context for subsequent steps or human review. Notes persist with vector embeddings, enabling semantic search across all stored reasoning.",[478,889,891],{"id":890},"install","Install",[486,893,897],{"className":894,"code":895,"language":896,"meta":64,"style":64},"language-bash shiki shiki-themes","go get github.com/zoobz-io/cogito\n","bash",[492,898,899],{"__ignoreMap":64},[495,900,901,903,906],{"class":497,"line":9},[495,902,490],{"class":520},[495,904,905],{"class":537}," get",[495,907,908],{"class":537}," github.com/zoobz-io/cogito\n",[404,910,911],{},"Requires Go 1.21+.",[478,913,915],{"id":914},"quick-start","Quick Start",[486,917,919],{"className":488,"code":918,"language":490,"meta":64,"style":64},"package main\n\nimport (\n    \"context\"\n    \"fmt\"\n    \"log\"\n\n    \"github.com/zoobz-io/cogito\"\n)\n\ntype TicketData struct {\n    CustomerName string   `json:\"customer_name\"`\n    Issue        string   `json:\"issue\"`\n    Urgency      []string `json:\"urgency_indicators\"`\n}\n\nfunc main() {\n    ctx := context.Background()\n\n    // Configure providers\n    cogito.SetProvider(myLLMProvider)\n    cogito.SetEmbedder(cogito.NewOpenAIEmbedder(apiKey))\n\n    // Connect to memory (implement cogito.Memory interface)\n    memory := NewMyMemory()\n\n    // Build a reasoning pipeline\n    pipeline := cogito.Sequence(\"ticket-triage\",\n        cogito.NewAnalyze[TicketData](\"parse\",\n            \"extract customer name, issue description, and urgency indicators\"),\n        cogito.NewSeek(\"history\", \"similar support issues and resolutions\").\n            WithLimit(5),\n        cogito.NewCategorize(\"category\", \"what type of support issue is this?\",\n            []string{\"billing\", \"technical\", \"account\", \"feature_request\"}),\n        cogito.NewAssess(\"urgency\",\n            \"how urgent is this ticket based on tone and content?\"),\n        cogito.NewDecide(\"escalate\",\n            \"should this ticket be escalated to a senior agent?\").\n            WithIntrospection(),\n    )\n\n    // Create a thought with initial context\n    thought, _ := cogito.New(ctx, memory, \"triage support ticket\")\n    thought.SetContent(ctx, \"ticket\", incomingTicket, \"input\")\n\n    // Execute the pipeline\n    result, err := pipeline.Process(ctx, thought)\n    if err != nil {\n        log.Fatal(err)\n    }\n\n    // Results are Notes\n    category, _ := result.GetContent(\"category\")\n    escalate, _ := result.GetContent(\"escalate\")\n    fmt.Printf(\"Category: %s, Escalate: %s\\n\", category, escalate)\n}\n",[492,920,921,930,934,943,948,953,958,962,967,971,975,988,1000,1011,1025,1029,1033,1045,1063,1067,1072,1088,1114,1119,1125,1138,1143,1149,1170,1191,1199,1219,1233,1255,1287,1304,1312,1328,1336,1344,1350,1355,1361,1394,1423,1428,1434,1463,1479,1497,1503,1508,1514,1539,1563,1600],{"__ignoreMap":64},[495,922,923,927],{"class":497,"line":9},[495,924,926],{"class":925},"sUt3r","package",[495,928,929],{"class":623}," main\n",[495,931,932],{"class":497,"line":20},[495,933,577],{"emptyLinePlaceholder":576},[495,935,936,939],{"class":497,"line":70},[495,937,938],{"class":925},"import",[495,940,942],{"class":941},"soy-K"," (\n",[495,944,945],{"class":497,"line":235},[495,946,947],{"class":537},"    \"context\"\n",[495,949,950],{"class":497,"line":586},[495,951,952],{"class":537},"    \"fmt\"\n",[495,954,955],{"class":497,"line":609},[495,956,957],{"class":537},"    \"log\"\n",[495,959,960],{"class":497,"line":641},[495,961,577],{"emptyLinePlaceholder":576},[495,963,964],{"class":497,"line":663},[495,965,966],{"class":537},"    \"github.com/zoobz-io/cogito\"\n",[495,968,969],{"class":497,"line":686},[495,970,541],{"class":941},[495,972,973],{"class":497,"line":695},[495,974,577],{"emptyLinePlaceholder":576},[495,976,977,980,983,986],{"class":497,"line":700},[495,978,979],{"class":925},"type",[495,981,982],{"class":623}," TicketData",[495,984,985],{"class":925}," struct",[495,987,777],{"class":504},[495,989,990,994,997],{"class":497,"line":705},[495,991,993],{"class":992},"sBGCq","    CustomerName",[495,995,996],{"class":623}," string",[495,998,999],{"class":537},"   `json:\"customer_name\"`\n",[495,1001,1002,1005,1008],{"class":497,"line":736},[495,1003,1004],{"class":992},"    Issue",[495,1006,1007],{"class":623},"        string",[495,1009,1010],{"class":537},"   `json:\"issue\"`\n",[495,1012,1013,1016,1019,1022],{"class":497,"line":741},[495,1014,1015],{"class":992},"    Urgency",[495,1017,1018],{"class":504},"      []",[495,1020,1021],{"class":623},"string",[495,1023,1024],{"class":537}," `json:\"urgency_indicators\"`\n",[495,1026,1027],{"class":497,"line":747},[495,1028,849],{"class":504},[495,1030,1031],{"class":497,"line":780},[495,1032,577],{"emptyLinePlaceholder":576},[495,1034,1035,1038,1041,1043],{"class":497,"line":846},[495,1036,1037],{"class":925},"func",[495,1039,1040],{"class":520}," main",[495,1042,774],{"class":504},[495,1044,777],{"class":504},[495,1046,1047,1050,1052,1055,1057,1060],{"class":497,"line":852},[495,1048,1049],{"class":500},"    ctx",[495,1051,511],{"class":500},[495,1053,1054],{"class":500}," context",[495,1056,517],{"class":504},[495,1058,1059],{"class":520},"Background",[495,1061,1062],{"class":504},"()\n",[495,1064,1065],{"class":497,"line":858},[495,1066,577],{"emptyLinePlaceholder":576},[495,1068,1069],{"class":497,"line":864},[495,1070,1071],{"class":582},"    // Configure providers\n",[495,1073,1074,1076,1078,1081,1083,1086],{"class":497,"line":870},[495,1075,612],{"class":500},[495,1077,517],{"class":504},[495,1079,1080],{"class":520},"SetProvider",[495,1082,524],{"class":504},[495,1084,1085],{"class":500},"myLLMProvider",[495,1087,541],{"class":504},[495,1089,1090,1092,1094,1097,1099,1101,1103,1106,1108,1111],{"class":497,"line":876},[495,1091,612],{"class":500},[495,1093,517],{"class":504},[495,1095,1096],{"class":520},"SetEmbedder",[495,1098,524],{"class":504},[495,1100,12],{"class":500},[495,1102,517],{"class":504},[495,1104,1105],{"class":520},"NewOpenAIEmbedder",[495,1107,524],{"class":504},[495,1109,1110],{"class":500},"apiKey",[495,1112,1113],{"class":504},"))\n",[495,1115,1117],{"class":497,"line":1116},23,[495,1118,577],{"emptyLinePlaceholder":576},[495,1120,1122],{"class":497,"line":1121},24,[495,1123,1124],{"class":582},"    // Connect to memory (implement cogito.Memory interface)\n",[495,1126,1128,1131,1133,1136],{"class":497,"line":1127},25,[495,1129,1130],{"class":500},"    memory",[495,1132,511],{"class":500},[495,1134,1135],{"class":520}," NewMyMemory",[495,1137,1062],{"class":504},[495,1139,1141],{"class":497,"line":1140},26,[495,1142,577],{"emptyLinePlaceholder":576},[495,1144,1146],{"class":497,"line":1145},27,[495,1147,1148],{"class":582},"    // Build a reasoning pipeline\n",[495,1150,1152,1155,1157,1159,1161,1163,1165,1168],{"class":497,"line":1151},28,[495,1153,1154],{"class":500},"    pipeline",[495,1156,511],{"class":500},[495,1158,514],{"class":500},[495,1160,517],{"class":504},[495,1162,598],{"class":520},[495,1164,524],{"class":504},[495,1166,1167],{"class":537},"\"ticket-triage\"",[495,1169,606],{"class":504},[495,1171,1173,1176,1178,1180,1182,1185,1187,1189],{"class":497,"line":1172},29,[495,1174,1175],{"class":500},"        cogito",[495,1177,517],{"class":504},[495,1179,617],{"class":520},[495,1181,620],{"class":504},[495,1183,1184],{"class":623},"TicketData",[495,1186,627],{"class":504},[495,1188,630],{"class":537},[495,1190,606],{"class":504},[495,1192,1194,1197],{"class":497,"line":1193},30,[495,1195,1196],{"class":537},"            \"extract customer name, issue description, and urgency indicators\"",[495,1198,638],{"class":504},[495,1200,1202,1204,1206,1208,1210,1212,1214,1217],{"class":497,"line":1201},31,[495,1203,1175],{"class":500},[495,1205,517],{"class":504},[495,1207,648],{"class":520},[495,1209,524],{"class":504},[495,1211,653],{"class":537},[495,1213,505],{"class":504},[495,1215,1216],{"class":537}," \"similar support issues and resolutions\"",[495,1218,683],{"class":504},[495,1220,1222,1225,1227,1231],{"class":497,"line":1221},32,[495,1223,1224],{"class":520},"            WithLimit",[495,1226,524],{"class":504},[495,1228,1230],{"class":1229},"sMAmT","5",[495,1232,638],{"class":504},[495,1234,1236,1238,1240,1243,1245,1248,1250,1253],{"class":497,"line":1235},33,[495,1237,1175],{"class":500},[495,1239,517],{"class":504},[495,1241,1242],{"class":520},"NewCategorize",[495,1244,524],{"class":504},[495,1246,1247],{"class":537},"\"category\"",[495,1249,505],{"class":504},[495,1251,1252],{"class":537}," \"what type of support issue is this?\"",[495,1254,606],{"class":504},[495,1256,1258,1261,1263,1266,1269,1271,1274,1276,1279,1281,1284],{"class":497,"line":1257},34,[495,1259,1260],{"class":504},"            []",[495,1262,1021],{"class":623},[495,1264,1265],{"class":504},"{",[495,1267,1268],{"class":537},"\"billing\"",[495,1270,505],{"class":504},[495,1272,1273],{"class":537}," \"technical\"",[495,1275,505],{"class":504},[495,1277,1278],{"class":537}," \"account\"",[495,1280,505],{"class":504},[495,1282,1283],{"class":537}," \"feature_request\"",[495,1285,1286],{"class":504},"}),\n",[495,1288,1290,1292,1294,1297,1299,1302],{"class":497,"line":1289},35,[495,1291,1175],{"class":500},[495,1293,517],{"class":504},[495,1295,1296],{"class":520},"NewAssess",[495,1298,524],{"class":504},[495,1300,1301],{"class":537},"\"urgency\"",[495,1303,606],{"class":504},[495,1305,1307,1310],{"class":497,"line":1306},36,[495,1308,1309],{"class":537},"            \"how urgent is this ticket based on tone and content?\"",[495,1311,638],{"class":504},[495,1313,1315,1317,1319,1321,1323,1326],{"class":497,"line":1314},37,[495,1316,1175],{"class":500},[495,1318,517],{"class":504},[495,1320,670],{"class":520},[495,1322,524],{"class":504},[495,1324,1325],{"class":537},"\"escalate\"",[495,1327,606],{"class":504},[495,1329,1331,1334],{"class":497,"line":1330},38,[495,1332,1333],{"class":537},"            \"should this ticket be escalated to a senior agent?\"",[495,1335,683],{"class":504},[495,1337,1339,1342],{"class":497,"line":1338},39,[495,1340,1341],{"class":520},"            WithIntrospection",[495,1343,692],{"class":504},[495,1345,1347],{"class":497,"line":1346},40,[495,1348,1349],{"class":504},"    )\n",[495,1351,1353],{"class":497,"line":1352},41,[495,1354,577],{"emptyLinePlaceholder":576},[495,1356,1358],{"class":497,"line":1357},42,[495,1359,1360],{"class":582},"    // Create a thought with initial context\n",[495,1362,1364,1367,1369,1371,1373,1375,1377,1379,1381,1383,1385,1387,1389,1392],{"class":497,"line":1363},43,[495,1365,1366],{"class":500},"    thought",[495,1368,505],{"class":504},[495,1370,508],{"class":500},[495,1372,511],{"class":500},[495,1374,514],{"class":500},[495,1376,517],{"class":504},[495,1378,521],{"class":520},[495,1380,524],{"class":504},[495,1382,527],{"class":500},[495,1384,505],{"class":504},[495,1386,532],{"class":500},[495,1388,505],{"class":504},[495,1390,1391],{"class":537}," \"triage support ticket\"",[495,1393,541],{"class":504},[495,1395,1397,1399,1401,1403,1405,1407,1409,1412,1414,1417,1419,1421],{"class":497,"line":1396},44,[495,1398,1366],{"class":500},[495,1400,517],{"class":504},[495,1402,550],{"class":520},[495,1404,524],{"class":504},[495,1406,527],{"class":500},[495,1408,505],{"class":504},[495,1410,1411],{"class":537}," \"ticket\"",[495,1413,505],{"class":504},[495,1415,1416],{"class":500}," incomingTicket",[495,1418,505],{"class":504},[495,1420,569],{"class":537},[495,1422,541],{"class":504},[495,1424,1426],{"class":497,"line":1425},45,[495,1427,577],{"emptyLinePlaceholder":576},[495,1429,1431],{"class":497,"line":1430},46,[495,1432,1433],{"class":582},"    // Execute the pipeline\n",[495,1435,1437,1440,1442,1445,1447,1449,1451,1453,1455,1457,1459,1461],{"class":497,"line":1436},47,[495,1438,1439],{"class":500},"    result",[495,1441,505],{"class":504},[495,1443,1444],{"class":500}," err",[495,1446,511],{"class":500},[495,1448,717],{"class":500},[495,1450,517],{"class":504},[495,1452,722],{"class":520},[495,1454,524],{"class":504},[495,1456,527],{"class":500},[495,1458,505],{"class":504},[495,1460,731],{"class":500},[495,1462,541],{"class":504},[495,1464,1466,1469,1471,1474,1477],{"class":497,"line":1465},48,[495,1467,1468],{"class":750},"    if",[495,1470,1444],{"class":500},[495,1472,1473],{"class":750}," !=",[495,1475,1476],{"class":925}," nil",[495,1478,777],{"class":504},[495,1480,1482,1485,1487,1490,1492,1495],{"class":497,"line":1481},49,[495,1483,1484],{"class":500},"        log",[495,1486,517],{"class":504},[495,1488,1489],{"class":520},"Fatal",[495,1491,524],{"class":504},[495,1493,1494],{"class":500},"err",[495,1496,541],{"class":504},[495,1498,1500],{"class":497,"line":1499},50,[495,1501,1502],{"class":504},"    }\n",[495,1504,1506],{"class":497,"line":1505},51,[495,1507,577],{"emptyLinePlaceholder":576},[495,1509,1511],{"class":497,"line":1510},52,[495,1512,1513],{"class":582},"    // Results are Notes\n",[495,1515,1517,1520,1522,1524,1526,1528,1530,1533,1535,1537],{"class":497,"line":1516},53,[495,1518,1519],{"class":500},"    category",[495,1521,505],{"class":504},[495,1523,508],{"class":500},[495,1525,511],{"class":500},[495,1527,766],{"class":500},[495,1529,517],{"class":504},[495,1531,1532],{"class":520},"GetContent",[495,1534,524],{"class":504},[495,1536,1247],{"class":537},[495,1538,541],{"class":504},[495,1540,1542,1545,1547,1549,1551,1553,1555,1557,1559,1561],{"class":497,"line":1541},54,[495,1543,1544],{"class":500},"    escalate",[495,1546,505],{"class":504},[495,1548,508],{"class":500},[495,1550,511],{"class":500},[495,1552,766],{"class":500},[495,1554,517],{"class":504},[495,1556,1532],{"class":520},[495,1558,524],{"class":504},[495,1560,1325],{"class":537},[495,1562,541],{"class":504},[495,1564,1566,1568,1570,1572,1574,1577,1579,1582,1584,1586,1588,1590,1593,1595,1598],{"class":497,"line":1565},55,[495,1567,783],{"class":500},[495,1569,517],{"class":504},[495,1571,788],{"class":520},[495,1573,524],{"class":504},[495,1575,1576],{"class":537},"\"Category: ",[495,1578,797],{"class":796},[495,1580,1581],{"class":537},", Escalate: ",[495,1583,797],{"class":796},[495,1585,811],{"class":810},[495,1587,814],{"class":537},[495,1589,505],{"class":504},[495,1591,1592],{"class":500}," category",[495,1594,505],{"class":504},[495,1596,1597],{"class":500}," escalate",[495,1599,541],{"class":504},[495,1601,1603],{"class":497,"line":1602},56,[495,1604,849],{"class":504},[478,1606,1608],{"id":1607},"capabilities","Capabilities",[1610,1611,1612,1628],"table",{},[1613,1614,1615],"thead",{},[1616,1617,1618,1622,1625],"tr",{},[1619,1620,1621],"th",{},"Feature",[1619,1623,1624],{},"Description",[1619,1626,1627],{},"Docs",[1629,1630,1631,1645,1658,1672,1685,1697],"tbody",{},[1616,1632,1633,1637,1640],{},[1634,1635,1636],"td",{},"Reasoning Primitives",[1634,1638,1639],{},"Decide, Analyze, Categorize, Assess, Prioritize",[1634,1641,1642],{},[407,1643,247],{"href":1644},"docs/learn/primitives",[1616,1646,1647,1650,1653],{},[1634,1648,1649],{},"Semantic Control Flow",[1634,1651,1652],{},"Sift (LLM gate) and Discern (LLM router)",[1634,1654,1655],{},[407,1656,280],{"href":1657},"docs/guides/control-flow",[1616,1659,1660,1663,1666],{},[1634,1661,1662],{},"Memory & Reflection",[1634,1664,1665],{},"Recall, Reflect, Checkpoint, Seek, Survey",[1634,1667,1668],{},[407,1669,1671],{"href":1670},"docs/guides/memory","Memory",[1616,1673,1674,1676,1679],{},[1634,1675,303],{},[1634,1677,1678],{},"Compress and Truncate for token control",[1634,1680,1681],{},[407,1682,1684],{"href":1683},"docs/guides/sessions","Sessions",[1616,1686,1687,1689,1692],{},[1634,1688,322],{},[1634,1690,1691],{},"Amplify (iterative refinement), Converge (parallel synthesis)",[1634,1693,1694],{},[407,1695,322],{"href":1696},"docs/guides/synthesis",[1616,1698,1699,1702,1705],{},[1634,1700,1701],{},"Two-Phase Reasoning",[1634,1703,1704],{},"Deterministic decisions with optional creative introspection",[1634,1706,1707],{},[407,1708,1710],{"href":1709},"docs/learn/introspection","Introspection",[478,1712,1714],{"id":1713},"why-cogito","Why cogito?",[1716,1717,1718,1731,1737,1743,1749,1761],"ul",{},[1719,1720,1721,1725,1726],"li",{},[1722,1723,1724],"strong",{},"Composable reasoning"," — Chain primitives into pipelines via ",[407,1727,1730],{"href":1728,"rel":1729},"https://github.com/zoobz-io/pipz",[411],"pipz",[1719,1732,1733,1736],{},[1722,1734,1735],{},"Semantic memory"," — Notes persist with vector embeddings for similarity search",[1719,1738,1739,1742],{},[1722,1740,1741],{},"Context accumulation"," — Each step builds on previous reasoning",[1719,1744,1745,1748],{},[1722,1746,1747],{},"Two-phase reasoning"," — Deterministic decisions with optional creative introspection",[1719,1750,1751,1754,1755,1760],{},[1722,1752,1753],{},"Observable"," — Emits ",[407,1756,1759],{"href":1757,"rel":1758},"https://github.com/zoobz-io/capitan",[411],"capitan"," signals throughout execution",[1719,1762,1763,1766,1767,1770],{},[1722,1764,1765],{},"Extensible"," — Implement ",[492,1768,1769],{},"pipz.Chainable[*Thought]"," for custom primitives",[478,1772,1649],{"id":1773},"semantic-control-flow",[404,1775,1776],{},"Traditional pipelines route on data. Cogito routes on meaning.",[486,1778,1780],{"className":488,"code":1779,"language":490,"meta":64,"style":64},"// Sift: LLM decides whether to execute\nurgent := cogito.NewSift(\"urgent-only\",\n    \"is this request time-sensitive?\",\n    expeditedHandler,\n)\n\n// Discern: LLM classifies and routes\nrouter := cogito.NewDiscern(\"route\", \"how should we handle this?\",\n    map[string]pipz.Chainable[*cogito.Thought]{\n        \"approve\": approvalFlow,\n        \"review\":  manualReviewFlow,\n        \"decline\": declineFlow,\n    },\n)\n",[492,1781,1782,1787,1808,1815,1822,1826,1830,1835,1861,1894,1907,1919,1931,1936],{"__ignoreMap":64},[495,1783,1784],{"class":497,"line":9},[495,1785,1786],{"class":582},"// Sift: LLM decides whether to execute\n",[495,1788,1789,1792,1794,1796,1798,1801,1803,1806],{"class":497,"line":20},[495,1790,1791],{"class":500},"urgent",[495,1793,511],{"class":500},[495,1795,514],{"class":500},[495,1797,517],{"class":504},[495,1799,1800],{"class":520},"NewSift",[495,1802,524],{"class":504},[495,1804,1805],{"class":537},"\"urgent-only\"",[495,1807,606],{"class":504},[495,1809,1810,1813],{"class":497,"line":70},[495,1811,1812],{"class":537},"    \"is this request time-sensitive?\"",[495,1814,606],{"class":504},[495,1816,1817,1820],{"class":497,"line":235},[495,1818,1819],{"class":500},"    expeditedHandler",[495,1821,606],{"class":504},[495,1823,1824],{"class":497,"line":586},[495,1825,541],{"class":504},[495,1827,1828],{"class":497,"line":609},[495,1829,577],{"emptyLinePlaceholder":576},[495,1831,1832],{"class":497,"line":641},[495,1833,1834],{"class":582},"// Discern: LLM classifies and routes\n",[495,1836,1837,1840,1842,1844,1846,1849,1851,1854,1856,1859],{"class":497,"line":663},[495,1838,1839],{"class":500},"router",[495,1841,511],{"class":500},[495,1843,514],{"class":500},[495,1845,517],{"class":504},[495,1847,1848],{"class":520},"NewDiscern",[495,1850,524],{"class":504},[495,1852,1853],{"class":537},"\"route\"",[495,1855,505],{"class":504},[495,1857,1858],{"class":537}," \"how should we handle this?\"",[495,1860,606],{"class":504},[495,1862,1863,1866,1868,1870,1873,1875,1877,1880,1882,1885,1887,1889,1891],{"class":497,"line":686},[495,1864,1865],{"class":925},"    map",[495,1867,620],{"class":504},[495,1869,1021],{"class":623},[495,1871,1872],{"class":504},"]",[495,1874,1730],{"class":623},[495,1876,517],{"class":504},[495,1878,1879],{"class":623},"Chainable",[495,1881,620],{"class":504},[495,1883,1884],{"class":750},"*",[495,1886,12],{"class":623},[495,1888,517],{"class":504},[495,1890,96],{"class":623},[495,1892,1893],{"class":504},"]{\n",[495,1895,1896,1899,1902,1905],{"class":497,"line":695},[495,1897,1898],{"class":537},"        \"approve\"",[495,1900,1901],{"class":504},":",[495,1903,1904],{"class":500}," approvalFlow",[495,1906,606],{"class":504},[495,1908,1909,1912,1914,1917],{"class":497,"line":700},[495,1910,1911],{"class":537},"        \"review\"",[495,1913,1901],{"class":504},[495,1915,1916],{"class":500},"  manualReviewFlow",[495,1918,606],{"class":504},[495,1920,1921,1924,1926,1929],{"class":497,"line":705},[495,1922,1923],{"class":537},"        \"decline\"",[495,1925,1901],{"class":504},[495,1927,1928],{"class":500}," declineFlow",[495,1930,606],{"class":504},[495,1932,1933],{"class":497,"line":736},[495,1934,1935],{"class":504},"    },\n",[495,1937,1938],{"class":497,"line":741},[495,1939,541],{"class":504},[404,1941,1942],{},"Control flow adapts to domain changes without code changes — the LLM interprets intent.",[404,1944,1945,1946,1951],{},"Integrate with ",[407,1947,1950],{"href":1948,"rel":1949},"https://github.com/zoobz-io/flume",[411],"flume"," for declarative, hot-reloadable pipeline definitions.",[478,1953,1955],{"id":1954},"documentation","Documentation",[1716,1957,1958],{},[1719,1959,1960,1963],{},[407,1961,6],{"href":1962},"docs/overview"," — Design philosophy and architecture",[1965,1966,363],"h3",{"id":1967},"learn",[1716,1969,1970,1976,1981,1986],{},[1719,1971,1972,1975],{},[407,1973,43],{"href":1974},"docs/learn/quickstart"," — Build your first reasoning pipeline",[1719,1977,1978,1980],{},[407,1979,247],{"href":1644}," — Decide, Analyze, Categorize, and more",[1719,1982,1983,1985],{},[407,1984,1710],{"href":1709}," — Two-phase reasoning",[1719,1987,1988,1991],{},[407,1989,33],{"href":1990},"docs/learn/architecture"," — Thought-Note-Memory model",[1965,1993,1995],{"id":1994},"guides","Guides",[1716,1997,1998,2003,2008,2013,2018,2027],{},[1719,1999,2000,2002],{},[407,2001,280],{"href":1657}," — Sift and Discern for semantic routing",[1719,2004,2005,2007],{},[407,2006,1671],{"href":1670}," — Persistence and semantic search",[1719,2009,2010,2012],{},[407,2011,1684],{"href":1683}," — Token management with Compress and Truncate",[1719,2014,2015,2017],{},[407,2016,322],{"href":1696}," — Amplify and Converge patterns",[1719,2019,2020,2023,2024],{},[407,2021,201],{"href":2022},"docs/guides/custom-primitives"," — Implementing Chainable",[495,2025,2026],{},"*Thought",[1719,2028,2029,2033],{},[407,2030,2032],{"href":2031},"docs/guides/testing","Testing"," — Testing reasoning pipelines",[1965,2035,2037],{"id":2036},"cookbook","Cookbook",[1716,2039,2040,2047,2054],{},[1719,2041,2042,2046],{},[407,2043,2045],{"href":2044},"docs/cookbook/support-triage","Support Triage"," — Ticket classification and routing",[1719,2048,2049,2053],{},[407,2050,2052],{"href":2051},"docs/cookbook/document-analysis","Document Analysis"," — Extract and reason over documents",[1719,2055,2056,2060],{},[407,2057,2059],{"href":2058},"docs/cookbook/decision-workflows","Decision Workflows"," — Multi-step approval flows",[1965,2062,375],{"id":2063},"reference",[1716,2065,2066,2073,2079],{},[1719,2067,2068,2072],{},[407,2069,2071],{"href":2070},"docs/reference/api","API"," — Complete function documentation",[1719,2074,2075,2078],{},[407,2076,247],{"href":2077},"docs/reference/primitives"," — All primitives with signatures",[1719,2080,2081,2085],{},[407,2082,2084],{"href":2083},"docs/reference/types","Types"," — Thought, Note, Memory, Provider",[478,2087,2089],{"id":2088},"contributing","Contributing",[404,2091,2092,2093,2097],{},"See ",[407,2094,2096],{"href":2095},"CONTRIBUTING","CONTRIBUTING.md"," for guidelines.",[478,2099,454],{"id":2100},"license",[404,2102,2103,2104,2106],{},"MIT License — see ",[407,2105,451],{"href":451}," for details.",[2108,2109,2110],"style",{},"html pre.shiki code .sh8_p, html code.shiki .sh8_p{--shiki-default:var(--shiki-text)}html pre.shiki code .sq5bi, html code.shiki .sq5bi{--shiki-default:var(--shiki-punctuation)}html pre.shiki code .s5klm, html code.shiki .s5klm{--shiki-default:var(--shiki-function)}html pre.shiki code .sxAnc, html code.shiki .sxAnc{--shiki-default:var(--shiki-string)}html pre.shiki code .sLkEo, html code.shiki .sLkEo{--shiki-default:var(--shiki-comment)}html pre.shiki code .sYBwO, html code.shiki .sYBwO{--shiki-default:var(--shiki-type)}html pre.shiki code .sW3Qg, html code.shiki .sW3Qg{--shiki-default:var(--shiki-operator)}html pre.shiki code .scyPU, html code.shiki .scyPU{--shiki-default:var(--shiki-placeholder)}html pre.shiki code .suWN2, html code.shiki .suWN2{--shiki-default:var(--shiki-tag)}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sUt3r, html code.shiki .sUt3r{--shiki-default:var(--shiki-keyword)}html pre.shiki code .soy-K, html code.shiki .soy-K{--shiki-default:#BBBBBB}html pre.shiki code .sBGCq, html code.shiki .sBGCq{--shiki-default:var(--shiki-property)}html pre.shiki code .sMAmT, html code.shiki .sMAmT{--shiki-default:var(--shiki-number)}",{"title":64,"searchDepth":20,"depth":20,"links":2112},[2113,2114,2115,2116,2117,2118,2119,2125,2126],{"id":480,"depth":20,"text":481},{"id":890,"depth":20,"text":891},{"id":914,"depth":20,"text":915},{"id":1607,"depth":20,"text":1608},{"id":1713,"depth":20,"text":1714},{"id":1773,"depth":20,"text":1649},{"id":1954,"depth":20,"text":1955,"children":2120},[2121,2122,2123,2124],{"id":1967,"depth":70,"text":363},{"id":1994,"depth":70,"text":1995},{"id":2036,"depth":70,"text":2037},{"id":2063,"depth":70,"text":375},{"id":2088,"depth":20,"text":2089},{"id":2100,"depth":20,"text":454},"md","book-open",{},"/readme",{"title":396,"description":64},"readme","_gzEMeeO91REDqbm1oABQZ78v3ctfqSuyHaxVoS0s78",{"id":2135,"title":2136,"body":2137,"description":64,"extension":2127,"icon":2614,"meta":2615,"navigation":576,"path":2616,"seo":2617,"stem":2618,"__hash__":2619},"resources/security.md","Security",{"type":398,"value":2138,"toc":2599},[2139,2143,2147,2150,2189,2193,2196,2200,2205,2208,2247,2251,2254,2303,2307,2333,2337,2340,2344,2347,2454,2458,2461,2492,2496,2499,2525,2529,2532,2557,2561,2575,2579,2582,2587,2590,2596],[401,2140,2142],{"id":2141},"security-policy","Security Policy",[478,2144,2146],{"id":2145},"supported-versions","Supported Versions",[404,2148,2149],{},"We release patches for security vulnerabilities. Which versions are eligible for receiving such patches depends on the CVSS v3.0 Rating:",[1610,2151,2152,2165],{},[1613,2153,2154],{},[1616,2155,2156,2159,2162],{},[1619,2157,2158],{},"Version",[1619,2160,2161],{},"Supported",[1619,2163,2164],{},"Status",[1629,2166,2167,2178],{},[1616,2168,2169,2172,2175],{},[1634,2170,2171],{},"latest",[1634,2173,2174],{},"✅",[1634,2176,2177],{},"Active development",[1616,2179,2180,2183,2186],{},[1634,2181,2182],{},"\u003C latest",[1634,2184,2185],{},"❌",[1634,2187,2188],{},"Security fixes only for critical issues",[478,2190,2192],{"id":2191},"reporting-a-vulnerability","Reporting a Vulnerability",[404,2194,2195],{},"We take the security of cogito seriously. If you have discovered a security vulnerability in this project, please report it responsibly.",[1965,2197,2199],{"id":2198},"how-to-report","How to Report",[404,2201,2202],{},[1722,2203,2204],{},"Please DO NOT report security vulnerabilities through public GitHub issues.",[404,2206,2207],{},"Instead, please report them via one of the following methods:",[2209,2210,2211,2234],"ol",{},[1719,2212,2213,2216,2217],{},[1722,2214,2215],{},"GitHub Security Advisories"," (Preferred)",[1716,2218,2219,2228,2231],{},[1719,2220,2221,2222,2227],{},"Go to the ",[407,2223,2226],{"href":2224,"rel":2225},"https://github.com/zoobz-io/cogito/security",[411],"Security tab"," of this repository",[1719,2229,2230],{},"Click \"Report a vulnerability\"",[1719,2232,2233],{},"Fill out the form with details about the vulnerability",[1719,2235,2236,2239],{},[1722,2237,2238],{},"Email",[1716,2240,2241,2244],{},[1719,2242,2243],{},"Send details to the repository maintainer through GitHub profile contact information",[1719,2245,2246],{},"Use PGP encryption if possible for sensitive details",[1965,2248,2250],{"id":2249},"what-to-include","What to Include",[404,2252,2253],{},"Please include the following information (as much as you can provide) to help us better understand the nature and scope of the possible issue:",[1716,2255,2256,2262,2268,2274,2280,2285,2291,2297],{},[1719,2257,2258,2261],{},[1722,2259,2260],{},"Type of issue"," (e.g., prompt injection, data leakage, memory exposure, etc.)",[1719,2263,2264,2267],{},[1722,2265,2266],{},"Full paths of source file(s)"," related to the manifestation of the issue",[1719,2269,2270,2273],{},[1722,2271,2272],{},"The location of the affected source code"," (tag/branch/commit or direct URL)",[1719,2275,2276,2279],{},[1722,2277,2278],{},"Any special configuration required"," to reproduce the issue",[1719,2281,2282,2279],{},[1722,2283,2284],{},"Step-by-step instructions",[1719,2286,2287,2290],{},[1722,2288,2289],{},"Proof-of-concept or exploit code"," (if possible)",[1719,2292,2293,2296],{},[1722,2294,2295],{},"Impact of the issue",", including how an attacker might exploit the issue",[1719,2298,2299,2302],{},[1722,2300,2301],{},"Your name and affiliation"," (optional)",[1965,2304,2306],{"id":2305},"what-to-expect","What to Expect",[1716,2308,2309,2315,2321,2327],{},[1719,2310,2311,2314],{},[1722,2312,2313],{},"Acknowledgment",": We will acknowledge receipt of your vulnerability report within 48 hours",[1719,2316,2317,2320],{},[1722,2318,2319],{},"Initial Assessment",": Within 7 days, we will provide an initial assessment of the report",[1719,2322,2323,2326],{},[1722,2324,2325],{},"Resolution Timeline",": We aim to resolve critical issues within 30 days",[1719,2328,2329,2332],{},[1722,2330,2331],{},"Disclosure",": We will coordinate with you on the disclosure timeline",[1965,2334,2336],{"id":2335},"preferred-languages","Preferred Languages",[404,2338,2339],{},"We prefer all communications to be in English.",[478,2341,2343],{"id":2342},"security-best-practices","Security Best Practices",[404,2345,2346],{},"When using cogito in your applications, we recommend:",[2209,2348,2349,2370,2386,2406,2422,2438],{},[1719,2350,2351,2354],{},[1722,2352,2353],{},"Keep Dependencies Updated",[486,2355,2357],{"className":894,"code":2356,"language":896,"meta":64,"style":64},"go get -u github.com/zoobz-io/cogito\n",[492,2358,2359],{"__ignoreMap":64},[495,2360,2361,2363,2365,2368],{"class":497,"line":9},[495,2362,490],{"class":520},[495,2364,905],{"class":537},[495,2366,2367],{"class":925}," -u",[495,2369,908],{"class":537},[1719,2371,2372,2375],{},[1722,2373,2374],{},"Protect LLM Credentials",[1716,2376,2377,2380,2383],{},[1719,2378,2379],{},"Never hardcode API keys in source code",[1719,2381,2382],{},"Use environment variables or secret managers",[1719,2384,2385],{},"Rotate keys regularly",[1719,2387,2388,2391],{},[1722,2389,2390],{},"Validate LLM Outputs",[1716,2392,2393,2396,2399],{},[1719,2394,2395],{},"Treat LLM responses as untrusted input",[1719,2397,2398],{},"Validate extracted data before using in critical paths",[1719,2400,2401,2402,2405],{},"Use typed extraction (Analyze",[495,2403,2404],{},"T",") for structured data",[1719,2407,2408,2411],{},[1722,2409,2410],{},"Memory Security",[1716,2412,2413,2416,2419],{},[1719,2414,2415],{},"Be mindful of what data is persisted to Memory",[1719,2417,2418],{},"Implement access controls at the application layer",[1719,2420,2421],{},"Consider data retention policies for Notes",[1719,2423,2424,2427],{},[1722,2425,2426],{},"Context Management",[1716,2428,2429,2432,2435],{},[1719,2430,2431],{},"Use Compress/Truncate to limit context exposure",[1719,2433,2434],{},"Be aware that Notes accumulate across pipeline steps",[1719,2436,2437],{},"Review what information flows between primitives",[1719,2439,2440,2443],{},[1722,2441,2442],{},"Resource Management",[1716,2444,2445,2448,2451],{},[1719,2446,2447],{},"Use timeouts for all LLM operations",[1719,2449,2450],{},"Implement rate limiting for LLM calls",[1719,2452,2453],{},"Monitor token usage and costs",[478,2455,2457],{"id":2456},"security-features","Security Features",[404,2459,2460],{},"cogito includes several built-in security features:",[1716,2462,2463,2469,2475,2481,2486],{},[1719,2464,2465,2468],{},[1722,2466,2467],{},"Type Safety",": Generic types prevent type confusion in extracted data",[1719,2470,2471,2474],{},[1722,2472,2473],{},"Context Support",": Built-in cancellation and timeout support",[1719,2476,2477,2480],{},[1722,2478,2479],{},"Error Isolation",": Errors are properly wrapped and traced",[1719,2482,2483,2485],{},[1722,2484,192],{},": Full signal emission for audit trails via capitan",[1719,2487,2488,2491],{},[1722,2489,2490],{},"Session Isolation",": Separate LLM sessions prevent context leakage",[478,2493,2495],{"id":2494},"llm-specific-considerations","LLM-Specific Considerations",[404,2497,2498],{},"When building LLM-powered systems:",[1716,2500,2501,2507,2513,2519],{},[1719,2502,2503,2506],{},[1722,2504,2505],{},"Prompt Injection",": Validate and sanitize user inputs before including in prompts",[1719,2508,2509,2512],{},[1722,2510,2511],{},"Data Exfiltration",": Be cautious about what context is sent to external LLM providers",[1719,2514,2515,2518],{},[1722,2516,2517],{},"Hallucination",": Don't trust LLM outputs for security-critical decisions without validation",[1719,2520,2521,2524],{},[1722,2522,2523],{},"Cost Attacks",": Implement safeguards against requests designed to consume excessive tokens",[478,2526,2528],{"id":2527},"automated-security-scanning","Automated Security Scanning",[404,2530,2531],{},"This project uses:",[1716,2533,2534,2539,2545,2551],{},[1719,2535,2536,2538],{},[1722,2537,439],{},": GitHub's semantic code analysis for security vulnerabilities",[1719,2540,2541,2544],{},[1722,2542,2543],{},"Dependabot",": Automated dependency updates",[1719,2546,2547,2550],{},[1722,2548,2549],{},"golangci-lint",": Static analysis including security linters (gosec)",[1719,2552,2553,2556],{},[1722,2554,2555],{},"Codecov",": Coverage tracking to ensure security-critical code is tested",[478,2558,2560],{"id":2559},"vulnerability-disclosure-policy","Vulnerability Disclosure Policy",[1716,2562,2563,2566,2569,2572],{},[1719,2564,2565],{},"Security vulnerabilities will be disclosed via GitHub Security Advisories",[1719,2567,2568],{},"We follow a 90-day disclosure timeline for non-critical issues",[1719,2570,2571],{},"Critical vulnerabilities may be disclosed sooner after patches are available",[1719,2573,2574],{},"We will credit reporters who follow responsible disclosure practices",[478,2576,2578],{"id":2577},"credits","Credits",[404,2580,2581],{},"We thank the following individuals for responsibly disclosing security issues:",[404,2583,2584],{},[884,2585,2586],{},"This list is currently empty. Be the first to help improve our security!",[2588,2589],"hr",{},[404,2591,2592,2595],{},[1722,2593,2594],{},"Last Updated",": 2025-12-05",[2108,2597,2598],{},"html pre.shiki code .s5klm, html code.shiki .s5klm{--shiki-default:var(--shiki-function)}html pre.shiki code .sxAnc, html code.shiki .sxAnc{--shiki-default:var(--shiki-string)}html pre.shiki code .sUt3r, html code.shiki .sUt3r{--shiki-default:var(--shiki-keyword)}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":64,"searchDepth":20,"depth":20,"links":2600},[2601,2602,2608,2609,2610,2611,2612,2613],{"id":2145,"depth":20,"text":2146},{"id":2191,"depth":20,"text":2192,"children":2603},[2604,2605,2606,2607],{"id":2198,"depth":70,"text":2199},{"id":2249,"depth":70,"text":2250},{"id":2305,"depth":70,"text":2306},{"id":2335,"depth":70,"text":2336},{"id":2342,"depth":20,"text":2343},{"id":2456,"depth":20,"text":2457},{"id":2494,"depth":20,"text":2495},{"id":2527,"depth":20,"text":2528},{"id":2559,"depth":20,"text":2560},{"id":2577,"depth":20,"text":2578},"shield",{},"/security",{"title":2136,"description":64},"security","6zBwm9Fdo0qcO3hA3nfDtG2AFdMmkzIR5NE4GGSzxX8",{"id":2621,"title":2089,"body":2622,"description":2630,"extension":2127,"icon":492,"meta":3211,"navigation":576,"path":3212,"seo":3213,"stem":2088,"__hash__":3214},"resources/contributing.md",{"type":398,"value":2623,"toc":3185},[2624,2628,2631,2635,2638,2642,2680,2684,2688,2706,2709,2725,2727,2738,2742,2746,2760,2764,2775,2779,2784,2787,2806,2810,2813,2830,2834,2837,2851,2855,2883,2886,2889,2904,2907,2923,2926,2942,2946,2954,2958,2961,3005,3009,3013,3016,3027,3030,3044,3048,3051,3079,3083,3109,3113,3140,3146,3150,3153,3164,3168,3179,3182],[401,2625,2627],{"id":2626},"contributing-to-cogito","Contributing to cogito",[404,2629,2630],{},"Thank you for your interest in contributing to cogito! This guide will help you get started.",[478,2632,2634],{"id":2633},"code-of-conduct","Code of Conduct",[404,2636,2637],{},"By participating in this project, you agree to maintain a respectful and inclusive environment for all contributors.",[478,2639,2641],{"id":2640},"getting-started","Getting Started",[2209,2643,2644,2647,2653,2659,2662,2668,2671,2677],{},[1719,2645,2646],{},"Fork the repository",[1719,2648,2649,2650],{},"Clone your fork: ",[492,2651,2652],{},"git clone https://github.com/yourusername/cogito.git",[1719,2654,2655,2656],{},"Create a feature branch: ",[492,2657,2658],{},"git checkout -b feature/your-feature-name",[1719,2660,2661],{},"Make your changes",[1719,2663,2664,2665],{},"Run tests: ",[492,2666,2667],{},"go test ./...",[1719,2669,2670],{},"Commit your changes with a descriptive message",[1719,2672,2673,2674],{},"Push to your fork: ",[492,2675,2676],{},"git push origin feature/your-feature-name",[1719,2678,2679],{},"Create a Pull Request",[478,2681,2683],{"id":2682},"development-guidelines","Development Guidelines",[1965,2685,2687],{"id":2686},"code-style","Code Style",[1716,2689,2690,2693,2700,2703],{},[1719,2691,2692],{},"Follow standard Go conventions",[1719,2694,2695,2696,2699],{},"Run ",[492,2697,2698],{},"go fmt"," before committing",[1719,2701,2702],{},"Add comments for exported functions and types",[1719,2704,2705],{},"Keep functions small and focused",[1965,2707,2032],{"id":2708},"testing",[1716,2710,2711,2714,2719,2722],{},[1719,2712,2713],{},"Write tests for new functionality",[1719,2715,2716,2717],{},"Ensure all tests pass: ",[492,2718,2667],{},[1719,2720,2721],{},"Include benchmarks for performance-critical code",[1719,2723,2724],{},"Aim for good test coverage",[1965,2726,1955],{"id":1954},[1716,2728,2729,2732,2735],{},[1719,2730,2731],{},"Update documentation for API changes",[1719,2733,2734],{},"Add examples for new features",[1719,2736,2737],{},"Keep doc comments clear and concise",[478,2739,2741],{"id":2740},"types-of-contributions","Types of Contributions",[1965,2743,2745],{"id":2744},"bug-reports","Bug Reports",[1716,2747,2748,2751,2754,2757],{},[1719,2749,2750],{},"Use GitHub Issues",[1719,2752,2753],{},"Include minimal reproduction code",[1719,2755,2756],{},"Describe expected vs actual behavior",[1719,2758,2759],{},"Include Go version and OS",[1965,2761,2763],{"id":2762},"feature-requests","Feature Requests",[1716,2765,2766,2769,2772],{},[1719,2767,2768],{},"Open an issue for discussion first",[1719,2770,2771],{},"Explain the use case",[1719,2773,2774],{},"Consider backwards compatibility",[1965,2776,2778],{"id":2777},"code-contributions","Code Contributions",[2780,2781,2783],"h4",{"id":2782},"adding-primitives","Adding Primitives",[404,2785,2786],{},"New reasoning primitives should:",[1716,2788,2789,2794,2797,2800,2803],{},[1719,2790,2791,2792],{},"Implement ",[492,2793,1769],{},[1719,2795,2796],{},"Follow the existing pattern (two-phase reasoning with optional introspection)",[1719,2798,2799],{},"Emit appropriate capitan signals",[1719,2801,2802],{},"Include comprehensive tests",[1719,2804,2805],{},"Add documentation with examples",[2780,2807,2809],{"id":2808},"adding-memory-implementations","Adding Memory Implementations",[404,2811,2812],{},"New Memory implementations should:",[1716,2814,2815,2821,2824,2827],{},[1719,2816,2817,2818,2820],{},"Implement the ",[492,2819,1671],{}," interface fully",[1719,2822,2823],{},"Handle semantic search via vector embeddings",[1719,2825,2826],{},"Include tests for all operations",[1719,2828,2829],{},"Document any infrastructure requirements",[2780,2831,2833],{"id":2832},"examples","Examples",[404,2835,2836],{},"New examples should:",[1716,2838,2839,2842,2845,2848],{},[1719,2840,2841],{},"Solve a real-world reasoning problem",[1719,2843,2844],{},"Include tests",[1719,2846,2847],{},"Have a descriptive README",[1719,2849,2850],{},"Follow the existing structure",[478,2852,2854],{"id":2853},"pull-request-process","Pull Request Process",[2209,2856,2857,2863,2868,2873,2878],{},[1719,2858,2859,2862],{},[1722,2860,2861],{},"Keep PRs focused"," - One feature/fix per PR",[1719,2864,2865],{},[1722,2866,2867],{},"Write descriptive commit messages",[1719,2869,2870],{},[1722,2871,2872],{},"Update tests and documentation",[1719,2874,2875],{},[1722,2876,2877],{},"Ensure CI passes",[1719,2879,2880],{},[1722,2881,2882],{},"Respond to review feedback",[478,2884,2032],{"id":2885},"testing-1",[404,2887,2888],{},"Run the full test suite:",[486,2890,2892],{"className":894,"code":2891,"language":896,"meta":64,"style":64},"go test ./...\n",[492,2893,2894],{"__ignoreMap":64},[495,2895,2896,2898,2901],{"class":497,"line":9},[495,2897,490],{"class":520},[495,2899,2900],{"class":537}," test",[495,2902,2903],{"class":537}," ./...\n",[404,2905,2906],{},"Run with race detection:",[486,2908,2910],{"className":894,"code":2909,"language":896,"meta":64,"style":64},"go test -race ./...\n",[492,2911,2912],{"__ignoreMap":64},[495,2913,2914,2916,2918,2921],{"class":497,"line":9},[495,2915,490],{"class":520},[495,2917,2900],{"class":537},[495,2919,2920],{"class":925}," -race",[495,2922,2903],{"class":537},[404,2924,2925],{},"Run benchmarks:",[486,2927,2929],{"className":894,"code":2928,"language":896,"meta":64,"style":64},"go test -bench=. ./...\n",[492,2930,2931],{"__ignoreMap":64},[495,2932,2933,2935,2937,2940],{"class":497,"line":9},[495,2934,490],{"class":520},[495,2936,2900],{"class":537},[495,2938,2939],{"class":925}," -bench=.",[495,2941,2903],{"class":537},[478,2943,2945],{"id":2944},"project-structure","Project Structure",[486,2947,2952],{"className":2948,"code":2950,"language":2951},[2949],"language-text","cogito/\n├── *.go              # Core library files (primitives, thought, memory)\n├── *_test.go         # Tests\n├── *_bench_test.go   # Benchmarks\n└── docs/             # Documentation\n","text",[492,2953,2950],{"__ignoreMap":64},[478,2955,2957],{"id":2956},"commit-messages","Commit Messages",[404,2959,2960],{},"Follow conventional commits:",[1716,2962,2963,2969,2975,2981,2987,2993,2999],{},[1719,2964,2965,2968],{},[492,2966,2967],{},"feat:"," New feature",[1719,2970,2971,2974],{},[492,2972,2973],{},"fix:"," Bug fix",[1719,2976,2977,2980],{},[492,2978,2979],{},"docs:"," Documentation changes",[1719,2982,2983,2986],{},[492,2984,2985],{},"test:"," Test additions/changes",[1719,2988,2989,2992],{},[492,2990,2991],{},"refactor:"," Code refactoring",[1719,2994,2995,2998],{},[492,2996,2997],{},"perf:"," Performance improvements",[1719,3000,3001,3004],{},[492,3002,3003],{},"chore:"," Maintenance tasks",[478,3006,3008],{"id":3007},"release-process","Release Process",[1965,3010,3012],{"id":3011},"automated-releases","Automated Releases",[404,3014,3015],{},"This project uses automated release versioning. To create a release:",[2209,3017,3018,3021,3024],{},[1719,3019,3020],{},"Go to Actions → Release → Run workflow",[1719,3022,3023],{},"Leave \"Version override\" empty for automatic version inference",[1719,3025,3026],{},"Click \"Run workflow\"",[404,3028,3029],{},"The system will:",[1716,3031,3032,3035,3038,3041],{},[1719,3033,3034],{},"Automatically determine the next version from conventional commits",[1719,3036,3037],{},"Create a git tag",[1719,3039,3040],{},"Generate release notes via GoReleaser",[1719,3042,3043],{},"Publish the release to GitHub",[1965,3045,3047],{"id":3046},"manual-release-legacy","Manual Release (Legacy)",[404,3049,3050],{},"You can still create releases manually:",[486,3052,3054],{"className":894,"code":3053,"language":896,"meta":64,"style":64},"git tag v1.2.3\ngit push origin v1.2.3\n",[492,3055,3056,3067],{"__ignoreMap":64},[495,3057,3058,3061,3064],{"class":497,"line":9},[495,3059,3060],{"class":520},"git",[495,3062,3063],{"class":537}," tag",[495,3065,3066],{"class":537}," v1.2.3\n",[495,3068,3069,3071,3074,3077],{"class":497,"line":20},[495,3070,3060],{"class":520},[495,3072,3073],{"class":537}," push",[495,3075,3076],{"class":537}," origin",[495,3078,3066],{"class":537},[1965,3080,3082],{"id":3081},"known-limitations","Known Limitations",[1716,3084,3085,3091,3097],{},[1719,3086,3087,3090],{},[1722,3088,3089],{},"Protected branches",": The automated release cannot bypass branch protection rules. This is by design for security.",[1719,3092,3093,3096],{},[1722,3094,3095],{},"Concurrent releases",": Rapid successive releases may fail. Simply retry after a moment.",[1719,3098,3099,3102,3103,3105,3106,3108],{},[1722,3100,3101],{},"Conventional commits required",": Version inference requires conventional commit format (",[492,3104,2967],{},", ",[492,3107,2973],{},", etc.)",[1965,3110,3112],{"id":3111},"commit-conventions-for-versioning","Commit Conventions for Versioning",[1716,3114,3115,3120,3125,3131],{},[1719,3116,3117,3119],{},[492,3118,2967],{}," new features (minor version: 1.2.0 → 1.3.0)",[1719,3121,3122,3124],{},[492,3123,2973],{}," bug fixes (patch version: 1.2.0 → 1.2.1)",[1719,3126,3127,3130],{},[492,3128,3129],{},"feat!:"," breaking changes (major version: 1.2.0 → 2.0.0)",[1719,3132,3133,3105,3135,3105,3137,3139],{},[492,3134,2979],{},[492,3136,2985],{},[492,3138,3003],{}," no version change",[404,3141,3142,3143],{},"Example: ",[492,3144,3145],{},"feat(primitive): add Summarize primitive for context condensation",[1965,3147,3149],{"id":3148},"version-preview-on-pull-requests","Version Preview on Pull Requests",[404,3151,3152],{},"Every PR automatically shows the next version that will be created:",[1716,3154,3155,3158,3161],{},[1719,3156,3157],{},"Check PR comments for \"Version Preview\"",[1719,3159,3160],{},"Updates automatically as you add commits",[1719,3162,3163],{},"Helps verify your commits have the intended effect",[478,3165,3167],{"id":3166},"questions","Questions?",[1716,3169,3170,3173,3176],{},[1719,3171,3172],{},"Open an issue for questions",[1719,3174,3175],{},"Check existing issues first",[1719,3177,3178],{},"Be patient and respectful",[404,3180,3181],{},"Thank you for contributing to cogito!",[2108,3183,3184],{},"html pre.shiki code .s5klm, html code.shiki .s5klm{--shiki-default:var(--shiki-function)}html pre.shiki code .sxAnc, html code.shiki .sxAnc{--shiki-default:var(--shiki-string)}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sUt3r, html code.shiki .sUt3r{--shiki-default:var(--shiki-keyword)}",{"title":64,"searchDepth":20,"depth":20,"links":3186},[3187,3188,3189,3194,3199,3200,3201,3202,3203,3210],{"id":2633,"depth":20,"text":2634},{"id":2640,"depth":20,"text":2641},{"id":2682,"depth":20,"text":2683,"children":3190},[3191,3192,3193],{"id":2686,"depth":70,"text":2687},{"id":2708,"depth":70,"text":2032},{"id":1954,"depth":70,"text":1955},{"id":2740,"depth":20,"text":2741,"children":3195},[3196,3197,3198],{"id":2744,"depth":70,"text":2745},{"id":2762,"depth":70,"text":2763},{"id":2777,"depth":70,"text":2778},{"id":2853,"depth":20,"text":2854},{"id":2885,"depth":20,"text":2032},{"id":2944,"depth":20,"text":2945},{"id":2956,"depth":20,"text":2957},{"id":3007,"depth":20,"text":3008,"children":3204},[3205,3206,3207,3208,3209],{"id":3011,"depth":70,"text":3012},{"id":3046,"depth":70,"text":3047},{"id":3081,"depth":70,"text":3082},{"id":3111,"depth":70,"text":3112},{"id":3148,"depth":70,"text":3149},{"id":3166,"depth":20,"text":3167},{},"/contributing",{"title":2089,"description":2630},"X10dJScFliwaj37mqg0fRDjrKtaT5I_WsQfb2noWE00",{"id":3216,"title":215,"author":3217,"body":3218,"description":217,"extension":2127,"meta":6407,"navigation":576,"path":214,"published":6408,"readtime":6409,"seo":6410,"stem":380,"tags":6411,"updated":6413,"__hash__":6414},"cogito/v0.0.6/5.reference/1.api.md","zoobzio",{"type":398,"value":3219,"toc":6390},[3220,3223,3230,3233,3235,3338,3341,3415,3418,3945,3948,4035,4038,4041,4044,4047,4260,4263,4266,4423,4426,4429,4557,4560,4563,4681,4684,4687,4817,4820,4823,4826,4903,4906,4909,5012,5015,5018,5021,5128,5131,5134,5137,5222,5225,5228,5283,5286,5289,5315,5318,5321,5324,5427,5430,5433,5511,5514,6181,6184,6313,6316,6341,6344,6387],[401,3221,215],{"id":3222},"api-reference",[404,3224,3225,3226,517],{},"Complete API reference for cogito. For the most up-to-date documentation, see ",[407,3227,3229],{"href":443,"rel":3228},[411],"pkg.go.dev/github.com/zoobz-io/cogito",[478,3231,224],{"id":3232},"core-types",[1965,3234,96],{"id":501},[486,3236,3238],{"className":488,"code":3237,"language":490,"meta":64,"style":64},"type Thought struct {\n    ID        string    // Auto-generated UUID\n    Intent    string    // Purpose of this thought\n    TraceID   string    // Unique trace identifier\n    ParentID  *string   // Parent thought (for branching)\n    Session   *Session  // LLM conversation state\n    CreatedAt time.Time\n    UpdatedAt time.Time\n}\n",[492,3239,3240,3251,3261,3272,3283,3296,3310,3323,3334],{"__ignoreMap":64},[495,3241,3242,3244,3247,3249],{"class":497,"line":9},[495,3243,979],{"class":925},[495,3245,3246],{"class":623}," Thought",[495,3248,985],{"class":925},[495,3250,777],{"class":504},[495,3252,3253,3256,3258],{"class":497,"line":20},[495,3254,3255],{"class":992},"    ID",[495,3257,1007],{"class":623},[495,3259,3260],{"class":582},"    // Auto-generated UUID\n",[495,3262,3263,3266,3269],{"class":497,"line":70},[495,3264,3265],{"class":992},"    Intent",[495,3267,3268],{"class":623},"    string",[495,3270,3271],{"class":582},"    // Purpose of this thought\n",[495,3273,3274,3277,3280],{"class":497,"line":235},[495,3275,3276],{"class":992},"    TraceID",[495,3278,3279],{"class":623},"   string",[495,3281,3282],{"class":582},"    // Unique trace identifier\n",[495,3284,3285,3288,3291,3293],{"class":497,"line":586},[495,3286,3287],{"class":992},"    ParentID",[495,3289,3290],{"class":750},"  *",[495,3292,1021],{"class":623},[495,3294,3295],{"class":582},"   // Parent thought (for branching)\n",[495,3297,3298,3301,3304,3307],{"class":497,"line":609},[495,3299,3300],{"class":992},"    Session",[495,3302,3303],{"class":750},"   *",[495,3305,3306],{"class":623},"Session",[495,3308,3309],{"class":582},"  // LLM conversation state\n",[495,3311,3312,3315,3318,3320],{"class":497,"line":641},[495,3313,3314],{"class":992},"    CreatedAt",[495,3316,3317],{"class":623}," time",[495,3319,517],{"class":504},[495,3321,3322],{"class":623},"Time\n",[495,3324,3325,3328,3330,3332],{"class":497,"line":663},[495,3326,3327],{"class":992},"    UpdatedAt",[495,3329,3317],{"class":623},[495,3331,517],{"class":504},[495,3333,3322],{"class":623},[495,3335,3336],{"class":497,"line":686},[495,3337,849],{"class":504},[2780,3339,232],{"id":3340},"constructors",[486,3342,3344],{"className":488,"code":3343,"language":490,"meta":64,"style":64},"func New(ctx context.Context, intent string) *Thought\nfunc NewWithTrace(ctx context.Context, intent, traceID string) *Thought\n",[492,3345,3346,3381],{"__ignoreMap":64},[495,3347,3348,3350,3353,3355,3358,3360,3362,3365,3367,3370,3372,3375,3378],{"class":497,"line":9},[495,3349,1037],{"class":925},[495,3351,3352],{"class":520}," New",[495,3354,524],{"class":504},[495,3356,527],{"class":3357},"sSYET",[495,3359,1054],{"class":623},[495,3361,517],{"class":504},[495,3363,3364],{"class":623},"Context",[495,3366,505],{"class":504},[495,3368,3369],{"class":3357}," intent",[495,3371,996],{"class":623},[495,3373,3374],{"class":504},")",[495,3376,3377],{"class":750}," *",[495,3379,3380],{"class":623},"Thought\n",[495,3382,3383,3385,3388,3390,3392,3394,3396,3398,3400,3402,3404,3407,3409,3411,3413],{"class":497,"line":20},[495,3384,1037],{"class":925},[495,3386,3387],{"class":520}," NewWithTrace",[495,3389,524],{"class":504},[495,3391,527],{"class":3357},[495,3393,1054],{"class":623},[495,3395,517],{"class":504},[495,3397,3364],{"class":623},[495,3399,505],{"class":504},[495,3401,3369],{"class":3357},[495,3403,505],{"class":504},[495,3405,3406],{"class":3357}," traceID",[495,3408,996],{"class":623},[495,3410,3374],{"class":504},[495,3412,3377],{"class":750},[495,3414,3380],{"class":623},[2780,3416,238],{"id":3417},"methods",[486,3419,3421],{"className":488,"code":3420,"language":490,"meta":64,"style":64},"func (t *Thought) AddNote(ctx context.Context, note Note) error\nfunc (t *Thought) SetContent(ctx context.Context, key, content, source string) error\nfunc (t *Thought) SetNote(ctx context.Context, key, content, source string, metadata map[string]string) error\nfunc (t *Thought) GetNote(key string) (Note, bool)\nfunc (t *Thought) GetContent(key string) (string, error)\nfunc (t *Thought) GetMetadata(key, field string) (string, error)\nfunc (t *Thought) GetLatestNote() (Note, bool)\nfunc (t *Thought) AllNotes() []Note\nfunc (t *Thought) GetBool(key string) (bool, error)\nfunc (t *Thought) GetFloat(key string) (float64, error)\nfunc (t *Thought) GetInt(key string) (int, error)\nfunc (t *Thought) Clone() *Thought\nfunc (t *Thought) PublishedCount() int\nfunc (t *Thought) GetUnpublishedNotes() []Note\nfunc (t *Thought) MarkNotesPublished(ctx context.Context)\n",[492,3422,3423,3464,3512,3573,3610,3646,3686,3715,3740,3776,3812,3848,3871,3893,3916],{"__ignoreMap":64},[495,3424,3425,3427,3430,3433,3435,3437,3439,3442,3444,3446,3448,3450,3452,3454,3456,3459,3461],{"class":497,"line":9},[495,3426,1037],{"class":925},[495,3428,3429],{"class":504}," (",[495,3431,3432],{"class":3357},"t ",[495,3434,1884],{"class":750},[495,3436,96],{"class":623},[495,3438,3374],{"class":504},[495,3440,3441],{"class":520}," AddNote",[495,3443,524],{"class":504},[495,3445,527],{"class":3357},[495,3447,1054],{"class":623},[495,3449,517],{"class":504},[495,3451,3364],{"class":623},[495,3453,505],{"class":504},[495,3455,758],{"class":3357},[495,3457,3458],{"class":623}," Note",[495,3460,3374],{"class":504},[495,3462,3463],{"class":623}," error\n",[495,3465,3466,3468,3470,3472,3474,3476,3478,3481,3483,3485,3487,3489,3491,3493,3496,3498,3501,3503,3506,3508,3510],{"class":497,"line":20},[495,3467,1037],{"class":925},[495,3469,3429],{"class":504},[495,3471,3432],{"class":3357},[495,3473,1884],{"class":750},[495,3475,96],{"class":623},[495,3477,3374],{"class":504},[495,3479,3480],{"class":520}," SetContent",[495,3482,524],{"class":504},[495,3484,527],{"class":3357},[495,3486,1054],{"class":623},[495,3488,517],{"class":504},[495,3490,3364],{"class":623},[495,3492,505],{"class":504},[495,3494,3495],{"class":3357}," key",[495,3497,505],{"class":504},[495,3499,3500],{"class":3357}," content",[495,3502,505],{"class":504},[495,3504,3505],{"class":3357}," source",[495,3507,996],{"class":623},[495,3509,3374],{"class":504},[495,3511,3463],{"class":623},[495,3513,3514,3516,3518,3520,3522,3524,3526,3529,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553,3555,3558,3561,3563,3565,3567,3569,3571],{"class":497,"line":70},[495,3515,1037],{"class":925},[495,3517,3429],{"class":504},[495,3519,3432],{"class":3357},[495,3521,1884],{"class":750},[495,3523,96],{"class":623},[495,3525,3374],{"class":504},[495,3527,3528],{"class":520}," SetNote",[495,3530,524],{"class":504},[495,3532,527],{"class":3357},[495,3534,1054],{"class":623},[495,3536,517],{"class":504},[495,3538,3364],{"class":623},[495,3540,505],{"class":504},[495,3542,3495],{"class":3357},[495,3544,505],{"class":504},[495,3546,3500],{"class":3357},[495,3548,505],{"class":504},[495,3550,3505],{"class":3357},[495,3552,996],{"class":623},[495,3554,505],{"class":504},[495,3556,3557],{"class":3357}," metadata",[495,3559,3560],{"class":925}," map",[495,3562,620],{"class":504},[495,3564,1021],{"class":623},[495,3566,1872],{"class":504},[495,3568,1021],{"class":623},[495,3570,3374],{"class":504},[495,3572,3463],{"class":623},[495,3574,3575,3577,3579,3581,3583,3585,3587,3590,3592,3595,3597,3599,3601,3603,3605,3608],{"class":497,"line":235},[495,3576,1037],{"class":925},[495,3578,3429],{"class":504},[495,3580,3432],{"class":3357},[495,3582,1884],{"class":750},[495,3584,96],{"class":623},[495,3586,3374],{"class":504},[495,3588,3589],{"class":520}," GetNote",[495,3591,524],{"class":504},[495,3593,3594],{"class":3357},"key",[495,3596,996],{"class":623},[495,3598,3374],{"class":504},[495,3600,3429],{"class":504},[495,3602,111],{"class":623},[495,3604,505],{"class":504},[495,3606,3607],{"class":623}," bool",[495,3609,541],{"class":504},[495,3611,3612,3614,3616,3618,3620,3622,3624,3627,3629,3631,3633,3635,3637,3639,3641,3644],{"class":497,"line":586},[495,3613,1037],{"class":925},[495,3615,3429],{"class":504},[495,3617,3432],{"class":3357},[495,3619,1884],{"class":750},[495,3621,96],{"class":623},[495,3623,3374],{"class":504},[495,3625,3626],{"class":520}," GetContent",[495,3628,524],{"class":504},[495,3630,3594],{"class":3357},[495,3632,996],{"class":623},[495,3634,3374],{"class":504},[495,3636,3429],{"class":504},[495,3638,1021],{"class":623},[495,3640,505],{"class":504},[495,3642,3643],{"class":623}," error",[495,3645,541],{"class":504},[495,3647,3648,3650,3652,3654,3656,3658,3660,3663,3665,3667,3669,3672,3674,3676,3678,3680,3682,3684],{"class":497,"line":609},[495,3649,1037],{"class":925},[495,3651,3429],{"class":504},[495,3653,3432],{"class":3357},[495,3655,1884],{"class":750},[495,3657,96],{"class":623},[495,3659,3374],{"class":504},[495,3661,3662],{"class":520}," GetMetadata",[495,3664,524],{"class":504},[495,3666,3594],{"class":3357},[495,3668,505],{"class":504},[495,3670,3671],{"class":3357}," field",[495,3673,996],{"class":623},[495,3675,3374],{"class":504},[495,3677,3429],{"class":504},[495,3679,1021],{"class":623},[495,3681,505],{"class":504},[495,3683,3643],{"class":623},[495,3685,541],{"class":504},[495,3687,3688,3690,3692,3694,3696,3698,3700,3703,3705,3707,3709,3711,3713],{"class":497,"line":641},[495,3689,1037],{"class":925},[495,3691,3429],{"class":504},[495,3693,3432],{"class":3357},[495,3695,1884],{"class":750},[495,3697,96],{"class":623},[495,3699,3374],{"class":504},[495,3701,3702],{"class":520}," GetLatestNote",[495,3704,774],{"class":504},[495,3706,3429],{"class":504},[495,3708,111],{"class":623},[495,3710,505],{"class":504},[495,3712,3607],{"class":623},[495,3714,541],{"class":504},[495,3716,3717,3719,3721,3723,3725,3727,3729,3732,3734,3737],{"class":497,"line":663},[495,3718,1037],{"class":925},[495,3720,3429],{"class":504},[495,3722,3432],{"class":3357},[495,3724,1884],{"class":750},[495,3726,96],{"class":623},[495,3728,3374],{"class":504},[495,3730,3731],{"class":520}," AllNotes",[495,3733,774],{"class":504},[495,3735,3736],{"class":504}," []",[495,3738,3739],{"class":623},"Note\n",[495,3741,3742,3744,3746,3748,3750,3752,3754,3757,3759,3761,3763,3765,3767,3770,3772,3774],{"class":497,"line":686},[495,3743,1037],{"class":925},[495,3745,3429],{"class":504},[495,3747,3432],{"class":3357},[495,3749,1884],{"class":750},[495,3751,96],{"class":623},[495,3753,3374],{"class":504},[495,3755,3756],{"class":520}," GetBool",[495,3758,524],{"class":504},[495,3760,3594],{"class":3357},[495,3762,996],{"class":623},[495,3764,3374],{"class":504},[495,3766,3429],{"class":504},[495,3768,3769],{"class":623},"bool",[495,3771,505],{"class":504},[495,3773,3643],{"class":623},[495,3775,541],{"class":504},[495,3777,3778,3780,3782,3784,3786,3788,3790,3793,3795,3797,3799,3801,3803,3806,3808,3810],{"class":497,"line":695},[495,3779,1037],{"class":925},[495,3781,3429],{"class":504},[495,3783,3432],{"class":3357},[495,3785,1884],{"class":750},[495,3787,96],{"class":623},[495,3789,3374],{"class":504},[495,3791,3792],{"class":520}," GetFloat",[495,3794,524],{"class":504},[495,3796,3594],{"class":3357},[495,3798,996],{"class":623},[495,3800,3374],{"class":504},[495,3802,3429],{"class":504},[495,3804,3805],{"class":623},"float64",[495,3807,505],{"class":504},[495,3809,3643],{"class":623},[495,3811,541],{"class":504},[495,3813,3814,3816,3818,3820,3822,3824,3826,3829,3831,3833,3835,3837,3839,3842,3844,3846],{"class":497,"line":700},[495,3815,1037],{"class":925},[495,3817,3429],{"class":504},[495,3819,3432],{"class":3357},[495,3821,1884],{"class":750},[495,3823,96],{"class":623},[495,3825,3374],{"class":504},[495,3827,3828],{"class":520}," GetInt",[495,3830,524],{"class":504},[495,3832,3594],{"class":3357},[495,3834,996],{"class":623},[495,3836,3374],{"class":504},[495,3838,3429],{"class":504},[495,3840,3841],{"class":623},"int",[495,3843,505],{"class":504},[495,3845,3643],{"class":623},[495,3847,541],{"class":504},[495,3849,3850,3852,3854,3856,3858,3860,3862,3865,3867,3869],{"class":497,"line":705},[495,3851,1037],{"class":925},[495,3853,3429],{"class":504},[495,3855,3432],{"class":3357},[495,3857,1884],{"class":750},[495,3859,96],{"class":623},[495,3861,3374],{"class":504},[495,3863,3864],{"class":520}," Clone",[495,3866,774],{"class":504},[495,3868,3377],{"class":750},[495,3870,3380],{"class":623},[495,3872,3873,3875,3877,3879,3881,3883,3885,3888,3890],{"class":497,"line":736},[495,3874,1037],{"class":925},[495,3876,3429],{"class":504},[495,3878,3432],{"class":3357},[495,3880,1884],{"class":750},[495,3882,96],{"class":623},[495,3884,3374],{"class":504},[495,3886,3887],{"class":520}," PublishedCount",[495,3889,774],{"class":504},[495,3891,3892],{"class":623}," int\n",[495,3894,3895,3897,3899,3901,3903,3905,3907,3910,3912,3914],{"class":497,"line":741},[495,3896,1037],{"class":925},[495,3898,3429],{"class":504},[495,3900,3432],{"class":3357},[495,3902,1884],{"class":750},[495,3904,96],{"class":623},[495,3906,3374],{"class":504},[495,3908,3909],{"class":520}," GetUnpublishedNotes",[495,3911,774],{"class":504},[495,3913,3736],{"class":504},[495,3915,3739],{"class":623},[495,3917,3918,3920,3922,3924,3926,3928,3930,3933,3935,3937,3939,3941,3943],{"class":497,"line":747},[495,3919,1037],{"class":925},[495,3921,3429],{"class":504},[495,3923,3432],{"class":3357},[495,3925,1884],{"class":750},[495,3927,96],{"class":623},[495,3929,3374],{"class":504},[495,3931,3932],{"class":520}," MarkNotesPublished",[495,3934,524],{"class":504},[495,3936,527],{"class":3357},[495,3938,1054],{"class":623},[495,3940,517],{"class":504},[495,3942,3364],{"class":623},[495,3944,541],{"class":504},[1965,3946,111],{"id":3947},"note",[486,3949,3951],{"className":488,"code":3950,"language":490,"meta":64,"style":64},"type Note struct {\n    ID        string\n    ThoughtID string\n    Key       string\n    Content   string\n    Metadata  map[string]string\n    Source    string\n    Created   time.Time\n}\n",[492,3952,3953,3963,3970,3978,3986,3994,4011,4019,4031],{"__ignoreMap":64},[495,3954,3955,3957,3959,3961],{"class":497,"line":9},[495,3956,979],{"class":925},[495,3958,3458],{"class":623},[495,3960,985],{"class":925},[495,3962,777],{"class":504},[495,3964,3965,3967],{"class":497,"line":20},[495,3966,3255],{"class":992},[495,3968,3969],{"class":623},"        string\n",[495,3971,3972,3975],{"class":497,"line":70},[495,3973,3974],{"class":992},"    ThoughtID",[495,3976,3977],{"class":623}," string\n",[495,3979,3980,3983],{"class":497,"line":235},[495,3981,3982],{"class":992},"    Key",[495,3984,3985],{"class":623},"       string\n",[495,3987,3988,3991],{"class":497,"line":586},[495,3989,3990],{"class":992},"    Content",[495,3992,3993],{"class":623},"   string\n",[495,3995,3996,3999,4002,4004,4006,4008],{"class":497,"line":609},[495,3997,3998],{"class":992},"    Metadata",[495,4000,4001],{"class":925},"  map",[495,4003,620],{"class":504},[495,4005,1021],{"class":623},[495,4007,1872],{"class":504},[495,4009,4010],{"class":623},"string\n",[495,4012,4013,4016],{"class":497,"line":641},[495,4014,4015],{"class":992},"    Source",[495,4017,4018],{"class":623},"    string\n",[495,4020,4021,4024,4027,4029],{"class":497,"line":663},[495,4022,4023],{"class":992},"    Created",[495,4025,4026],{"class":623},"   time",[495,4028,517],{"class":504},[495,4030,3322],{"class":623},[495,4032,4033],{"class":497,"line":686},[495,4034,849],{"class":504},[478,4036,247],{"id":4037},"primitives",[1965,4039,251],{"id":4040},"decision-analysis",[2780,4042,255],{"id":4043},"decide",[404,4045,4046],{},"Binary yes/no decisions with confidence scores.",[486,4048,4050],{"className":488,"code":4049,"language":490,"meta":64,"style":64},"func NewDecide(key, question string) *Decide\nfunc (d *Decide) WithProvider(p Provider) *Decide\nfunc (d *Decide) WithIntrospection() *Decide\nfunc (d *Decide) WithSummaryKey(key string) *Decide\nfunc (d *Decide) WithReasoningTemperature(t float32) *Decide\nfunc (d *Decide) WithIntrospectionTemperature(t float32) *Decide\nfunc (d *Decide) Scan(t *Thought) (*DecideResponse, error)\n",[492,4051,4052,4077,4108,4131,4160,4191,4220],{"__ignoreMap":64},[495,4053,4054,4056,4059,4061,4063,4065,4068,4070,4072,4074],{"class":497,"line":9},[495,4055,1037],{"class":925},[495,4057,4058],{"class":520}," NewDecide",[495,4060,524],{"class":504},[495,4062,3594],{"class":3357},[495,4064,505],{"class":504},[495,4066,4067],{"class":3357}," question",[495,4069,996],{"class":623},[495,4071,3374],{"class":504},[495,4073,3377],{"class":750},[495,4075,4076],{"class":623},"Decide\n",[495,4078,4079,4081,4083,4086,4088,4090,4092,4095,4097,4099,4102,4104,4106],{"class":497,"line":20},[495,4080,1037],{"class":925},[495,4082,3429],{"class":504},[495,4084,4085],{"class":3357},"d ",[495,4087,1884],{"class":750},[495,4089,255],{"class":623},[495,4091,3374],{"class":504},[495,4093,4094],{"class":520}," WithProvider",[495,4096,524],{"class":504},[495,4098,404],{"class":3357},[495,4100,4101],{"class":623}," Provider",[495,4103,3374],{"class":504},[495,4105,3377],{"class":750},[495,4107,4076],{"class":623},[495,4109,4110,4112,4114,4116,4118,4120,4122,4125,4127,4129],{"class":497,"line":70},[495,4111,1037],{"class":925},[495,4113,3429],{"class":504},[495,4115,4085],{"class":3357},[495,4117,1884],{"class":750},[495,4119,255],{"class":623},[495,4121,3374],{"class":504},[495,4123,4124],{"class":520}," WithIntrospection",[495,4126,774],{"class":504},[495,4128,3377],{"class":750},[495,4130,4076],{"class":623},[495,4132,4133,4135,4137,4139,4141,4143,4145,4148,4150,4152,4154,4156,4158],{"class":497,"line":235},[495,4134,1037],{"class":925},[495,4136,3429],{"class":504},[495,4138,4085],{"class":3357},[495,4140,1884],{"class":750},[495,4142,255],{"class":623},[495,4144,3374],{"class":504},[495,4146,4147],{"class":520}," WithSummaryKey",[495,4149,524],{"class":504},[495,4151,3594],{"class":3357},[495,4153,996],{"class":623},[495,4155,3374],{"class":504},[495,4157,3377],{"class":750},[495,4159,4076],{"class":623},[495,4161,4162,4164,4166,4168,4170,4172,4174,4177,4179,4182,4185,4187,4189],{"class":497,"line":586},[495,4163,1037],{"class":925},[495,4165,3429],{"class":504},[495,4167,4085],{"class":3357},[495,4169,1884],{"class":750},[495,4171,255],{"class":623},[495,4173,3374],{"class":504},[495,4175,4176],{"class":520}," WithReasoningTemperature",[495,4178,524],{"class":504},[495,4180,4181],{"class":3357},"t",[495,4183,4184],{"class":623}," float32",[495,4186,3374],{"class":504},[495,4188,3377],{"class":750},[495,4190,4076],{"class":623},[495,4192,4193,4195,4197,4199,4201,4203,4205,4208,4210,4212,4214,4216,4218],{"class":497,"line":609},[495,4194,1037],{"class":925},[495,4196,3429],{"class":504},[495,4198,4085],{"class":3357},[495,4200,1884],{"class":750},[495,4202,255],{"class":623},[495,4204,3374],{"class":504},[495,4206,4207],{"class":520}," WithIntrospectionTemperature",[495,4209,524],{"class":504},[495,4211,4181],{"class":3357},[495,4213,4184],{"class":623},[495,4215,3374],{"class":504},[495,4217,3377],{"class":750},[495,4219,4076],{"class":623},[495,4221,4222,4224,4226,4228,4230,4232,4234,4237,4239,4241,4243,4245,4247,4249,4251,4254,4256,4258],{"class":497,"line":641},[495,4223,1037],{"class":925},[495,4225,3429],{"class":504},[495,4227,4085],{"class":3357},[495,4229,1884],{"class":750},[495,4231,255],{"class":623},[495,4233,3374],{"class":504},[495,4235,4236],{"class":520}," Scan",[495,4238,524],{"class":504},[495,4240,4181],{"class":3357},[495,4242,3377],{"class":750},[495,4244,96],{"class":623},[495,4246,3374],{"class":504},[495,4248,3429],{"class":504},[495,4250,1884],{"class":750},[495,4252,4253],{"class":623},"DecideResponse",[495,4255,505],{"class":504},[495,4257,3643],{"class":623},[495,4259,541],{"class":504},[2780,4261,260],{"id":4262},"analyze",[404,4264,4265],{},"Extract structured data into typed results.",[486,4267,4269],{"className":488,"code":4268,"language":490,"meta":64,"style":64},"func NewAnalyze[T any](key, prompt string) *Analyze[T]\nfunc (a *Analyze[T]) WithProvider(p Provider) *Analyze[T]\nfunc (a *Analyze[T]) WithIntrospection() *Analyze[T]\nfunc (a *Analyze[T]) Scan(t *Thought) (*T, error)\n",[492,4270,4271,4309,4349,4381],{"__ignoreMap":64},[495,4272,4273,4275,4278,4280,4282,4285,4287,4289,4291,4294,4296,4298,4300,4302,4304,4306],{"class":497,"line":9},[495,4274,1037],{"class":925},[495,4276,4277],{"class":520}," NewAnalyze",[495,4279,620],{"class":504},[495,4281,2404],{"class":3357},[495,4283,4284],{"class":623}," any",[495,4286,627],{"class":504},[495,4288,3594],{"class":3357},[495,4290,505],{"class":504},[495,4292,4293],{"class":3357}," prompt",[495,4295,996],{"class":623},[495,4297,3374],{"class":504},[495,4299,3377],{"class":750},[495,4301,260],{"class":623},[495,4303,620],{"class":504},[495,4305,2404],{"class":623},[495,4307,4308],{"class":504},"]\n",[495,4310,4311,4313,4315,4318,4320,4322,4324,4326,4329,4331,4333,4335,4337,4339,4341,4343,4345,4347],{"class":497,"line":20},[495,4312,1037],{"class":925},[495,4314,3429],{"class":504},[495,4316,4317],{"class":3357},"a ",[495,4319,1884],{"class":750},[495,4321,260],{"class":623},[495,4323,620],{"class":504},[495,4325,2404],{"class":623},[495,4327,4328],{"class":504},"])",[495,4330,4094],{"class":520},[495,4332,524],{"class":504},[495,4334,404],{"class":3357},[495,4336,4101],{"class":623},[495,4338,3374],{"class":504},[495,4340,3377],{"class":750},[495,4342,260],{"class":623},[495,4344,620],{"class":504},[495,4346,2404],{"class":623},[495,4348,4308],{"class":504},[495,4350,4351,4353,4355,4357,4359,4361,4363,4365,4367,4369,4371,4373,4375,4377,4379],{"class":497,"line":70},[495,4352,1037],{"class":925},[495,4354,3429],{"class":504},[495,4356,4317],{"class":3357},[495,4358,1884],{"class":750},[495,4360,260],{"class":623},[495,4362,620],{"class":504},[495,4364,2404],{"class":623},[495,4366,4328],{"class":504},[495,4368,4124],{"class":520},[495,4370,774],{"class":504},[495,4372,3377],{"class":750},[495,4374,260],{"class":623},[495,4376,620],{"class":504},[495,4378,2404],{"class":623},[495,4380,4308],{"class":504},[495,4382,4383,4385,4387,4389,4391,4393,4395,4397,4399,4401,4403,4405,4407,4409,4411,4413,4415,4417,4419,4421],{"class":497,"line":235},[495,4384,1037],{"class":925},[495,4386,3429],{"class":504},[495,4388,4317],{"class":3357},[495,4390,1884],{"class":750},[495,4392,260],{"class":623},[495,4394,620],{"class":504},[495,4396,2404],{"class":623},[495,4398,4328],{"class":504},[495,4400,4236],{"class":520},[495,4402,524],{"class":504},[495,4404,4181],{"class":3357},[495,4406,3377],{"class":750},[495,4408,96],{"class":623},[495,4410,3374],{"class":504},[495,4412,3429],{"class":504},[495,4414,1884],{"class":750},[495,4416,2404],{"class":623},[495,4418,505],{"class":504},[495,4420,3643],{"class":623},[495,4422,541],{"class":504},[2780,4424,265],{"id":4425},"categorize",[404,4427,4428],{},"Classify into one of N categories.",[486,4430,4432],{"className":488,"code":4431,"language":490,"meta":64,"style":64},"func NewCategorize(key, question string, categories []string) *Categorize\nfunc (c *Categorize) WithProvider(p Provider) *Categorize\nfunc (c *Categorize) WithIntrospection() *Categorize\nfunc (c *Categorize) Scan(t *Thought) (*CategorizeResponse, error)\n",[492,4433,4434,4467,4496,4518],{"__ignoreMap":64},[495,4435,4436,4438,4441,4443,4445,4447,4449,4451,4453,4456,4458,4460,4462,4464],{"class":497,"line":9},[495,4437,1037],{"class":925},[495,4439,4440],{"class":520}," NewCategorize",[495,4442,524],{"class":504},[495,4444,3594],{"class":3357},[495,4446,505],{"class":504},[495,4448,4067],{"class":3357},[495,4450,996],{"class":623},[495,4452,505],{"class":504},[495,4454,4455],{"class":3357}," categories",[495,4457,3736],{"class":504},[495,4459,1021],{"class":623},[495,4461,3374],{"class":504},[495,4463,3377],{"class":750},[495,4465,4466],{"class":623},"Categorize\n",[495,4468,4469,4471,4473,4476,4478,4480,4482,4484,4486,4488,4490,4492,4494],{"class":497,"line":20},[495,4470,1037],{"class":925},[495,4472,3429],{"class":504},[495,4474,4475],{"class":3357},"c ",[495,4477,1884],{"class":750},[495,4479,265],{"class":623},[495,4481,3374],{"class":504},[495,4483,4094],{"class":520},[495,4485,524],{"class":504},[495,4487,404],{"class":3357},[495,4489,4101],{"class":623},[495,4491,3374],{"class":504},[495,4493,3377],{"class":750},[495,4495,4466],{"class":623},[495,4497,4498,4500,4502,4504,4506,4508,4510,4512,4514,4516],{"class":497,"line":70},[495,4499,1037],{"class":925},[495,4501,3429],{"class":504},[495,4503,4475],{"class":3357},[495,4505,1884],{"class":750},[495,4507,265],{"class":623},[495,4509,3374],{"class":504},[495,4511,4124],{"class":520},[495,4513,774],{"class":504},[495,4515,3377],{"class":750},[495,4517,4466],{"class":623},[495,4519,4520,4522,4524,4526,4528,4530,4532,4534,4536,4538,4540,4542,4544,4546,4548,4551,4553,4555],{"class":497,"line":235},[495,4521,1037],{"class":925},[495,4523,3429],{"class":504},[495,4525,4475],{"class":3357},[495,4527,1884],{"class":750},[495,4529,265],{"class":623},[495,4531,3374],{"class":504},[495,4533,4236],{"class":520},[495,4535,524],{"class":504},[495,4537,4181],{"class":3357},[495,4539,3377],{"class":750},[495,4541,96],{"class":623},[495,4543,3374],{"class":504},[495,4545,3429],{"class":504},[495,4547,1884],{"class":750},[495,4549,4550],{"class":623},"CategorizeResponse",[495,4552,505],{"class":504},[495,4554,3643],{"class":623},[495,4556,541],{"class":504},[2780,4558,270],{"id":4559},"assess",[404,4561,4562],{},"Sentiment analysis with emotional scoring.",[486,4564,4566],{"className":488,"code":4565,"language":490,"meta":64,"style":64},"func NewAssess(key, question string) *Assess\nfunc (a *Assess) WithProvider(p Provider) *Assess\nfunc (a *Assess) WithIntrospection() *Assess\nfunc (a *Assess) Scan(t *Thought) (*AssessResponse, error)\n",[492,4567,4568,4592,4620,4642],{"__ignoreMap":64},[495,4569,4570,4572,4575,4577,4579,4581,4583,4585,4587,4589],{"class":497,"line":9},[495,4571,1037],{"class":925},[495,4573,4574],{"class":520}," NewAssess",[495,4576,524],{"class":504},[495,4578,3594],{"class":3357},[495,4580,505],{"class":504},[495,4582,4067],{"class":3357},[495,4584,996],{"class":623},[495,4586,3374],{"class":504},[495,4588,3377],{"class":750},[495,4590,4591],{"class":623},"Assess\n",[495,4593,4594,4596,4598,4600,4602,4604,4606,4608,4610,4612,4614,4616,4618],{"class":497,"line":20},[495,4595,1037],{"class":925},[495,4597,3429],{"class":504},[495,4599,4317],{"class":3357},[495,4601,1884],{"class":750},[495,4603,270],{"class":623},[495,4605,3374],{"class":504},[495,4607,4094],{"class":520},[495,4609,524],{"class":504},[495,4611,404],{"class":3357},[495,4613,4101],{"class":623},[495,4615,3374],{"class":504},[495,4617,3377],{"class":750},[495,4619,4591],{"class":623},[495,4621,4622,4624,4626,4628,4630,4632,4634,4636,4638,4640],{"class":497,"line":70},[495,4623,1037],{"class":925},[495,4625,3429],{"class":504},[495,4627,4317],{"class":3357},[495,4629,1884],{"class":750},[495,4631,270],{"class":623},[495,4633,3374],{"class":504},[495,4635,4124],{"class":520},[495,4637,774],{"class":504},[495,4639,3377],{"class":750},[495,4641,4591],{"class":623},[495,4643,4644,4646,4648,4650,4652,4654,4656,4658,4660,4662,4664,4666,4668,4670,4672,4675,4677,4679],{"class":497,"line":235},[495,4645,1037],{"class":925},[495,4647,3429],{"class":504},[495,4649,4317],{"class":3357},[495,4651,1884],{"class":750},[495,4653,270],{"class":623},[495,4655,3374],{"class":504},[495,4657,4236],{"class":520},[495,4659,524],{"class":504},[495,4661,4181],{"class":3357},[495,4663,3377],{"class":750},[495,4665,96],{"class":623},[495,4667,3374],{"class":504},[495,4669,3429],{"class":504},[495,4671,1884],{"class":750},[495,4673,4674],{"class":623},"AssessResponse",[495,4676,505],{"class":504},[495,4678,3643],{"class":623},[495,4680,541],{"class":504},[2780,4682,275],{"id":4683},"prioritize",[404,4685,4686],{},"Rank items by specified criteria.",[486,4688,4690],{"className":488,"code":4689,"language":490,"meta":64,"style":64},"func NewPrioritize(key, criteria string, items []string) *Prioritize\nfunc (p *Prioritize) WithProvider(provider Provider) *Prioritize\nfunc (p *Prioritize) WithIntrospection() *Prioritize\nfunc (p *Prioritize) Scan(t *Thought) (*PrioritizeResponse, error)\n",[492,4691,4692,4726,4756,4778],{"__ignoreMap":64},[495,4693,4694,4696,4699,4701,4703,4705,4708,4710,4712,4715,4717,4719,4721,4723],{"class":497,"line":9},[495,4695,1037],{"class":925},[495,4697,4698],{"class":520}," NewPrioritize",[495,4700,524],{"class":504},[495,4702,3594],{"class":3357},[495,4704,505],{"class":504},[495,4706,4707],{"class":3357}," criteria",[495,4709,996],{"class":623},[495,4711,505],{"class":504},[495,4713,4714],{"class":3357}," items",[495,4716,3736],{"class":504},[495,4718,1021],{"class":623},[495,4720,3374],{"class":504},[495,4722,3377],{"class":750},[495,4724,4725],{"class":623},"Prioritize\n",[495,4727,4728,4730,4732,4735,4737,4739,4741,4743,4745,4748,4750,4752,4754],{"class":497,"line":20},[495,4729,1037],{"class":925},[495,4731,3429],{"class":504},[495,4733,4734],{"class":3357},"p ",[495,4736,1884],{"class":750},[495,4738,275],{"class":623},[495,4740,3374],{"class":504},[495,4742,4094],{"class":520},[495,4744,524],{"class":504},[495,4746,4747],{"class":3357},"provider",[495,4749,4101],{"class":623},[495,4751,3374],{"class":504},[495,4753,3377],{"class":750},[495,4755,4725],{"class":623},[495,4757,4758,4760,4762,4764,4766,4768,4770,4772,4774,4776],{"class":497,"line":70},[495,4759,1037],{"class":925},[495,4761,3429],{"class":504},[495,4763,4734],{"class":3357},[495,4765,1884],{"class":750},[495,4767,275],{"class":623},[495,4769,3374],{"class":504},[495,4771,4124],{"class":520},[495,4773,774],{"class":504},[495,4775,3377],{"class":750},[495,4777,4725],{"class":623},[495,4779,4780,4782,4784,4786,4788,4790,4792,4794,4796,4798,4800,4802,4804,4806,4808,4811,4813,4815],{"class":497,"line":235},[495,4781,1037],{"class":925},[495,4783,3429],{"class":504},[495,4785,4734],{"class":3357},[495,4787,1884],{"class":750},[495,4789,275],{"class":623},[495,4791,3374],{"class":504},[495,4793,4236],{"class":520},[495,4795,524],{"class":504},[495,4797,4181],{"class":3357},[495,4799,3377],{"class":750},[495,4801,96],{"class":623},[495,4803,3374],{"class":504},[495,4805,3429],{"class":504},[495,4807,1884],{"class":750},[495,4809,4810],{"class":623},"PrioritizeResponse",[495,4812,505],{"class":504},[495,4814,3643],{"class":623},[495,4816,541],{"class":504},[1965,4818,280],{"id":4819},"control-flow",[2780,4821,284],{"id":4822},"sift",[404,4824,4825],{},"Semantic gate - LLM decides whether to execute wrapped processor.",[486,4827,4829],{"className":488,"code":4828,"language":490,"meta":64,"style":64},"func NewSift(name, criteria string, processor pipz.Chainable[*Thought]) *Sift\nfunc (s *Sift) WithProvider(p Provider) *Sift\n",[492,4830,4831,4874],{"__ignoreMap":64},[495,4832,4833,4835,4838,4840,4843,4845,4847,4849,4851,4854,4857,4859,4861,4863,4865,4867,4869,4871],{"class":497,"line":9},[495,4834,1037],{"class":925},[495,4836,4837],{"class":520}," NewSift",[495,4839,524],{"class":504},[495,4841,4842],{"class":3357},"name",[495,4844,505],{"class":504},[495,4846,4707],{"class":3357},[495,4848,996],{"class":623},[495,4850,505],{"class":504},[495,4852,4853],{"class":3357}," processor",[495,4855,4856],{"class":623}," pipz",[495,4858,517],{"class":504},[495,4860,1879],{"class":623},[495,4862,620],{"class":504},[495,4864,1884],{"class":750},[495,4866,96],{"class":623},[495,4868,4328],{"class":504},[495,4870,3377],{"class":750},[495,4872,4873],{"class":623},"Sift\n",[495,4875,4876,4878,4880,4883,4885,4887,4889,4891,4893,4895,4897,4899,4901],{"class":497,"line":20},[495,4877,1037],{"class":925},[495,4879,3429],{"class":504},[495,4881,4882],{"class":3357},"s ",[495,4884,1884],{"class":750},[495,4886,284],{"class":623},[495,4888,3374],{"class":504},[495,4890,4094],{"class":520},[495,4892,524],{"class":504},[495,4894,404],{"class":3357},[495,4896,4101],{"class":623},[495,4898,3374],{"class":504},[495,4900,3377],{"class":750},[495,4902,4873],{"class":623},[2780,4904,289],{"id":4905},"discern",[404,4907,4908],{},"Semantic router - LLM classifies and routes to different processors.",[486,4910,4912],{"className":488,"code":4911,"language":490,"meta":64,"style":64},"func NewDiscern(name, question string) *Discern\nfunc (d *Discern) AddRoute(category string, processor pipz.Chainable[*Thought]) *Discern\nfunc (d *Discern) WithProvider(p Provider) *Discern\n",[492,4913,4914,4938,4984],{"__ignoreMap":64},[495,4915,4916,4918,4921,4923,4925,4927,4929,4931,4933,4935],{"class":497,"line":9},[495,4917,1037],{"class":925},[495,4919,4920],{"class":520}," NewDiscern",[495,4922,524],{"class":504},[495,4924,4842],{"class":3357},[495,4926,505],{"class":504},[495,4928,4067],{"class":3357},[495,4930,996],{"class":623},[495,4932,3374],{"class":504},[495,4934,3377],{"class":750},[495,4936,4937],{"class":623},"Discern\n",[495,4939,4940,4942,4944,4946,4948,4950,4952,4955,4957,4960,4962,4964,4966,4968,4970,4972,4974,4976,4978,4980,4982],{"class":497,"line":20},[495,4941,1037],{"class":925},[495,4943,3429],{"class":504},[495,4945,4085],{"class":3357},[495,4947,1884],{"class":750},[495,4949,289],{"class":623},[495,4951,3374],{"class":504},[495,4953,4954],{"class":520}," AddRoute",[495,4956,524],{"class":504},[495,4958,4959],{"class":3357},"category",[495,4961,996],{"class":623},[495,4963,505],{"class":504},[495,4965,4853],{"class":3357},[495,4967,4856],{"class":623},[495,4969,517],{"class":504},[495,4971,1879],{"class":623},[495,4973,620],{"class":504},[495,4975,1884],{"class":750},[495,4977,96],{"class":623},[495,4979,4328],{"class":504},[495,4981,3377],{"class":750},[495,4983,4937],{"class":623},[495,4985,4986,4988,4990,4992,4994,4996,4998,5000,5002,5004,5006,5008,5010],{"class":497,"line":70},[495,4987,1037],{"class":925},[495,4989,3429],{"class":504},[495,4991,4085],{"class":3357},[495,4993,1884],{"class":750},[495,4995,289],{"class":623},[495,4997,3374],{"class":504},[495,4999,4094],{"class":520},[495,5001,524],{"class":504},[495,5003,404],{"class":3357},[495,5005,4101],{"class":623},[495,5007,3374],{"class":504},[495,5009,3377],{"class":750},[495,5011,4937],{"class":623},[1965,5013,294],{"id":5014},"reflection",[2780,5016,298],{"id":5017},"reflect",[404,5019,5020],{},"Consolidate current Thought's Notes into a summary.",[486,5022,5024],{"className":488,"code":5023,"language":490,"meta":64,"style":64},"func NewReflect(key string) *Reflect\nfunc (r *Reflect) WithPrompt(prompt string) *Reflect\nfunc (r *Reflect) WithProvider(p Provider) *Reflect\nfunc (r *Reflect) WithUnpublishedOnly() *Reflect\n",[492,5025,5026,5046,5077,5105],{"__ignoreMap":64},[495,5027,5028,5030,5033,5035,5037,5039,5041,5043],{"class":497,"line":9},[495,5029,1037],{"class":925},[495,5031,5032],{"class":520}," NewReflect",[495,5034,524],{"class":504},[495,5036,3594],{"class":3357},[495,5038,996],{"class":623},[495,5040,3374],{"class":504},[495,5042,3377],{"class":750},[495,5044,5045],{"class":623},"Reflect\n",[495,5047,5048,5050,5052,5055,5057,5059,5061,5064,5066,5069,5071,5073,5075],{"class":497,"line":20},[495,5049,1037],{"class":925},[495,5051,3429],{"class":504},[495,5053,5054],{"class":3357},"r ",[495,5056,1884],{"class":750},[495,5058,298],{"class":623},[495,5060,3374],{"class":504},[495,5062,5063],{"class":520}," WithPrompt",[495,5065,524],{"class":504},[495,5067,5068],{"class":3357},"prompt",[495,5070,996],{"class":623},[495,5072,3374],{"class":504},[495,5074,3377],{"class":750},[495,5076,5045],{"class":623},[495,5078,5079,5081,5083,5085,5087,5089,5091,5093,5095,5097,5099,5101,5103],{"class":497,"line":70},[495,5080,1037],{"class":925},[495,5082,3429],{"class":504},[495,5084,5054],{"class":3357},[495,5086,1884],{"class":750},[495,5088,298],{"class":623},[495,5090,3374],{"class":504},[495,5092,4094],{"class":520},[495,5094,524],{"class":504},[495,5096,404],{"class":3357},[495,5098,4101],{"class":623},[495,5100,3374],{"class":504},[495,5102,3377],{"class":750},[495,5104,5045],{"class":623},[495,5106,5107,5109,5111,5113,5115,5117,5119,5122,5124,5126],{"class":497,"line":235},[495,5108,1037],{"class":925},[495,5110,3429],{"class":504},[495,5112,5054],{"class":3357},[495,5114,1884],{"class":750},[495,5116,298],{"class":623},[495,5118,3374],{"class":504},[495,5120,5121],{"class":520}," WithUnpublishedOnly",[495,5123,774],{"class":504},[495,5125,3377],{"class":750},[495,5127,5045],{"class":623},[1965,5129,303],{"id":5130},"session-management",[2780,5132,307],{"id":5133},"reset",[404,5135,5136],{},"Clear session state.",[486,5138,5140],{"className":488,"code":5139,"language":490,"meta":64,"style":64},"func NewReset(key string) *Reset\nfunc (r *Reset) WithSystemMessage(msg string) *Reset\nfunc (r *Reset) WithPreserveNote(noteKey string) *Reset\n",[492,5141,5142,5162,5192],{"__ignoreMap":64},[495,5143,5144,5146,5149,5151,5153,5155,5157,5159],{"class":497,"line":9},[495,5145,1037],{"class":925},[495,5147,5148],{"class":520}," NewReset",[495,5150,524],{"class":504},[495,5152,3594],{"class":3357},[495,5154,996],{"class":623},[495,5156,3374],{"class":504},[495,5158,3377],{"class":750},[495,5160,5161],{"class":623},"Reset\n",[495,5163,5164,5166,5168,5170,5172,5174,5176,5179,5181,5184,5186,5188,5190],{"class":497,"line":20},[495,5165,1037],{"class":925},[495,5167,3429],{"class":504},[495,5169,5054],{"class":3357},[495,5171,1884],{"class":750},[495,5173,307],{"class":623},[495,5175,3374],{"class":504},[495,5177,5178],{"class":520}," WithSystemMessage",[495,5180,524],{"class":504},[495,5182,5183],{"class":3357},"msg",[495,5185,996],{"class":623},[495,5187,3374],{"class":504},[495,5189,3377],{"class":750},[495,5191,5161],{"class":623},[495,5193,5194,5196,5198,5200,5202,5204,5206,5209,5211,5214,5216,5218,5220],{"class":497,"line":70},[495,5195,1037],{"class":925},[495,5197,3429],{"class":504},[495,5199,5054],{"class":3357},[495,5201,1884],{"class":750},[495,5203,307],{"class":623},[495,5205,3374],{"class":504},[495,5207,5208],{"class":520}," WithPreserveNote",[495,5210,524],{"class":504},[495,5212,5213],{"class":3357},"noteKey",[495,5215,996],{"class":623},[495,5217,3374],{"class":504},[495,5219,3377],{"class":750},[495,5221,5161],{"class":623},[2780,5223,312],{"id":5224},"compress",[404,5226,5227],{},"LLM-summarise session history to reduce tokens.",[486,5229,5231],{"className":488,"code":5230,"language":490,"meta":64,"style":64},"func NewCompress(targetMessages int) *Compress\nfunc (c *Compress) WithProvider(p Provider) *Compress\n",[492,5232,5233,5255],{"__ignoreMap":64},[495,5234,5235,5237,5240,5242,5245,5248,5250,5252],{"class":497,"line":9},[495,5236,1037],{"class":925},[495,5238,5239],{"class":520}," NewCompress",[495,5241,524],{"class":504},[495,5243,5244],{"class":3357},"targetMessages",[495,5246,5247],{"class":623}," int",[495,5249,3374],{"class":504},[495,5251,3377],{"class":750},[495,5253,5254],{"class":623},"Compress\n",[495,5256,5257,5259,5261,5263,5265,5267,5269,5271,5273,5275,5277,5279,5281],{"class":497,"line":20},[495,5258,1037],{"class":925},[495,5260,3429],{"class":504},[495,5262,4475],{"class":3357},[495,5264,1884],{"class":750},[495,5266,312],{"class":623},[495,5268,3374],{"class":504},[495,5270,4094],{"class":520},[495,5272,524],{"class":504},[495,5274,404],{"class":3357},[495,5276,4101],{"class":623},[495,5278,3374],{"class":504},[495,5280,3377],{"class":750},[495,5282,5254],{"class":623},[2780,5284,317],{"id":5285},"truncate",[404,5287,5288],{},"Sliding window session trimming (no LLM).",[486,5290,5292],{"className":488,"code":5291,"language":490,"meta":64,"style":64},"func NewTruncate(keepMessages int) *Truncate\n",[492,5293,5294],{"__ignoreMap":64},[495,5295,5296,5298,5301,5303,5306,5308,5310,5312],{"class":497,"line":9},[495,5297,1037],{"class":925},[495,5299,5300],{"class":520}," NewTruncate",[495,5302,524],{"class":504},[495,5304,5305],{"class":3357},"keepMessages",[495,5307,5247],{"class":623},[495,5309,3374],{"class":504},[495,5311,3377],{"class":750},[495,5313,5314],{"class":623},"Truncate\n",[1965,5316,322],{"id":5317},"synthesis",[2780,5319,326],{"id":5320},"amplify",[404,5322,5323],{},"Iterative refinement until criteria met.",[486,5325,5327],{"className":488,"code":5326,"language":490,"meta":64,"style":64},"func NewAmplify(key, criteria string, processor pipz.Chainable[*Thought]) *Amplify\nfunc (a *Amplify) WithMaxIterations(n int) *Amplify\nfunc (a *Amplify) WithProvider(p Provider) *Amplify\n",[492,5328,5329,5369,5399],{"__ignoreMap":64},[495,5330,5331,5333,5336,5338,5340,5342,5344,5346,5348,5350,5352,5354,5356,5358,5360,5362,5364,5366],{"class":497,"line":9},[495,5332,1037],{"class":925},[495,5334,5335],{"class":520}," NewAmplify",[495,5337,524],{"class":504},[495,5339,3594],{"class":3357},[495,5341,505],{"class":504},[495,5343,4707],{"class":3357},[495,5345,996],{"class":623},[495,5347,505],{"class":504},[495,5349,4853],{"class":3357},[495,5351,4856],{"class":623},[495,5353,517],{"class":504},[495,5355,1879],{"class":623},[495,5357,620],{"class":504},[495,5359,1884],{"class":750},[495,5361,96],{"class":623},[495,5363,4328],{"class":504},[495,5365,3377],{"class":750},[495,5367,5368],{"class":623},"Amplify\n",[495,5370,5371,5373,5375,5377,5379,5381,5383,5386,5388,5391,5393,5395,5397],{"class":497,"line":20},[495,5372,1037],{"class":925},[495,5374,3429],{"class":504},[495,5376,4317],{"class":3357},[495,5378,1884],{"class":750},[495,5380,326],{"class":623},[495,5382,3374],{"class":504},[495,5384,5385],{"class":520}," WithMaxIterations",[495,5387,524],{"class":504},[495,5389,5390],{"class":3357},"n",[495,5392,5247],{"class":623},[495,5394,3374],{"class":504},[495,5396,3377],{"class":750},[495,5398,5368],{"class":623},[495,5400,5401,5403,5405,5407,5409,5411,5413,5415,5417,5419,5421,5423,5425],{"class":497,"line":70},[495,5402,1037],{"class":925},[495,5404,3429],{"class":504},[495,5406,4317],{"class":3357},[495,5408,1884],{"class":750},[495,5410,326],{"class":623},[495,5412,3374],{"class":504},[495,5414,4094],{"class":520},[495,5416,524],{"class":504},[495,5418,404],{"class":3357},[495,5420,4101],{"class":623},[495,5422,3374],{"class":504},[495,5424,3377],{"class":750},[495,5426,5368],{"class":623},[2780,5428,331],{"id":5429},"converge",[404,5431,5432],{},"Parallel execution with semantic synthesis.",[486,5434,5436],{"className":488,"code":5435,"language":490,"meta":64,"style":64},"func NewConverge(key, synthesisPrompt string, processors ...pipz.Chainable[*Thought]) *Converge\nfunc (c *Converge) WithProvider(p Provider) *Converge\n",[492,5437,5438,5483],{"__ignoreMap":64},[495,5439,5440,5442,5445,5447,5449,5451,5454,5456,5458,5461,5464,5466,5468,5470,5472,5474,5476,5478,5480],{"class":497,"line":9},[495,5441,1037],{"class":925},[495,5443,5444],{"class":520}," NewConverge",[495,5446,524],{"class":504},[495,5448,3594],{"class":3357},[495,5450,505],{"class":504},[495,5452,5453],{"class":3357}," synthesisPrompt",[495,5455,996],{"class":623},[495,5457,505],{"class":504},[495,5459,5460],{"class":3357}," processors",[495,5462,5463],{"class":750}," ...",[495,5465,1730],{"class":623},[495,5467,517],{"class":504},[495,5469,1879],{"class":623},[495,5471,620],{"class":504},[495,5473,1884],{"class":750},[495,5475,96],{"class":623},[495,5477,4328],{"class":504},[495,5479,3377],{"class":750},[495,5481,5482],{"class":623},"Converge\n",[495,5484,5485,5487,5489,5491,5493,5495,5497,5499,5501,5503,5505,5507,5509],{"class":497,"line":20},[495,5486,1037],{"class":925},[495,5488,3429],{"class":504},[495,5490,4475],{"class":3357},[495,5492,1884],{"class":750},[495,5494,331],{"class":623},[495,5496,3374],{"class":504},[495,5498,4094],{"class":520},[495,5500,524],{"class":504},[495,5502,404],{"class":3357},[495,5504,4101],{"class":623},[495,5506,3374],{"class":504},[495,5508,3377],{"class":750},[495,5510,5482],{"class":623},[478,5512,336],{"id":5513},"pipeline-helpers",[486,5515,5517],{"className":488,"code":5516,"language":490,"meta":64,"style":64},"func Sequence(identity pipz.Identity, processors ...pipz.Chainable[*Thought]) *pipz.Sequence[*Thought]\nfunc Filter(identity pipz.Identity, predicate func(context.Context, *Thought) bool, processor pipz.Chainable[*Thought]) *pipz.Filter[*Thought]\nfunc Switch(identity pipz.Identity, condition func(context.Context, *Thought) string) *pipz.Switch[*Thought]\nfunc Gate(identity pipz.Identity, predicate func(context.Context, *Thought) bool) pipz.Processor[*Thought]\nfunc Fallback(identity pipz.Identity, processors ...pipz.Chainable[*Thought]) *pipz.Fallback[*Thought]\nfunc Retry(identity pipz.Identity, processor pipz.Chainable[*Thought], maxAttempts int) *pipz.Retry[*Thought]\nfunc Backoff(identity pipz.Identity, processor pipz.Chainable[*Thought], maxAttempts int, baseDelay time.Duration) *pipz.Backoff[*Thought]\nfunc Timeout(identity pipz.Identity, processor pipz.Chainable[*Thought], duration time.Duration) *pipz.Timeout[*Thought]\nfunc Concurrent(identity pipz.Identity, reducer func(*Thought, map[pipz.Identity]*Thought, map[pipz.Identity]error) *Thought, processors ...pipz.Chainable[*Thought]) *pipz.Concurrent[*Thought]\nfunc Race(identity pipz.Identity, processors ...pipz.Chainable[*Thought]) *pipz.Race[*Thought]\n",[492,5518,5519,5574,5653,5714,5772,5826,5886,5956,6019,6127],{"__ignoreMap":64},[495,5520,5521,5523,5526,5528,5531,5533,5535,5538,5540,5542,5544,5546,5548,5550,5552,5554,5556,5558,5560,5562,5564,5566,5568,5570,5572],{"class":497,"line":9},[495,5522,1037],{"class":925},[495,5524,5525],{"class":520}," Sequence",[495,5527,524],{"class":504},[495,5529,5530],{"class":3357},"identity",[495,5532,4856],{"class":623},[495,5534,517],{"class":504},[495,5536,5537],{"class":623},"Identity",[495,5539,505],{"class":504},[495,5541,5460],{"class":3357},[495,5543,5463],{"class":750},[495,5545,1730],{"class":623},[495,5547,517],{"class":504},[495,5549,1879],{"class":623},[495,5551,620],{"class":504},[495,5553,1884],{"class":750},[495,5555,96],{"class":623},[495,5557,4328],{"class":504},[495,5559,3377],{"class":750},[495,5561,1730],{"class":623},[495,5563,517],{"class":504},[495,5565,598],{"class":623},[495,5567,620],{"class":504},[495,5569,1884],{"class":750},[495,5571,96],{"class":623},[495,5573,4308],{"class":504},[495,5575,5576,5578,5581,5583,5585,5587,5589,5591,5593,5596,5599,5601,5604,5606,5608,5610,5612,5614,5616,5618,5620,5622,5624,5626,5628,5630,5632,5634,5636,5638,5640,5642,5645,5647,5649,5651],{"class":497,"line":20},[495,5577,1037],{"class":925},[495,5579,5580],{"class":520}," Filter",[495,5582,524],{"class":504},[495,5584,5530],{"class":3357},[495,5586,4856],{"class":623},[495,5588,517],{"class":504},[495,5590,5537],{"class":623},[495,5592,505],{"class":504},[495,5594,5595],{"class":3357}," predicate",[495,5597,5598],{"class":925}," func",[495,5600,524],{"class":504},[495,5602,5603],{"class":623},"context",[495,5605,517],{"class":504},[495,5607,3364],{"class":623},[495,5609,505],{"class":504},[495,5611,3377],{"class":750},[495,5613,96],{"class":623},[495,5615,3374],{"class":504},[495,5617,3607],{"class":623},[495,5619,505],{"class":504},[495,5621,4853],{"class":3357},[495,5623,4856],{"class":623},[495,5625,517],{"class":504},[495,5627,1879],{"class":623},[495,5629,620],{"class":504},[495,5631,1884],{"class":750},[495,5633,96],{"class":623},[495,5635,4328],{"class":504},[495,5637,3377],{"class":750},[495,5639,1730],{"class":623},[495,5641,517],{"class":504},[495,5643,5644],{"class":623},"Filter",[495,5646,620],{"class":504},[495,5648,1884],{"class":750},[495,5650,96],{"class":623},[495,5652,4308],{"class":504},[495,5654,5655,5657,5660,5662,5664,5666,5668,5670,5672,5675,5677,5679,5681,5683,5685,5687,5689,5691,5693,5695,5697,5699,5701,5703,5706,5708,5710,5712],{"class":497,"line":70},[495,5656,1037],{"class":925},[495,5658,5659],{"class":520}," Switch",[495,5661,524],{"class":504},[495,5663,5530],{"class":3357},[495,5665,4856],{"class":623},[495,5667,517],{"class":504},[495,5669,5537],{"class":623},[495,5671,505],{"class":504},[495,5673,5674],{"class":3357}," condition",[495,5676,5598],{"class":925},[495,5678,524],{"class":504},[495,5680,5603],{"class":623},[495,5682,517],{"class":504},[495,5684,3364],{"class":623},[495,5686,505],{"class":504},[495,5688,3377],{"class":750},[495,5690,96],{"class":623},[495,5692,3374],{"class":504},[495,5694,996],{"class":623},[495,5696,3374],{"class":504},[495,5698,3377],{"class":750},[495,5700,1730],{"class":623},[495,5702,517],{"class":504},[495,5704,5705],{"class":623},"Switch",[495,5707,620],{"class":504},[495,5709,1884],{"class":750},[495,5711,96],{"class":623},[495,5713,4308],{"class":504},[495,5715,5716,5718,5721,5723,5725,5727,5729,5731,5733,5735,5737,5739,5741,5743,5745,5747,5749,5751,5753,5755,5757,5759,5761,5764,5766,5768,5770],{"class":497,"line":235},[495,5717,1037],{"class":925},[495,5719,5720],{"class":520}," Gate",[495,5722,524],{"class":504},[495,5724,5530],{"class":3357},[495,5726,4856],{"class":623},[495,5728,517],{"class":504},[495,5730,5537],{"class":623},[495,5732,505],{"class":504},[495,5734,5595],{"class":3357},[495,5736,5598],{"class":925},[495,5738,524],{"class":504},[495,5740,5603],{"class":623},[495,5742,517],{"class":504},[495,5744,3364],{"class":623},[495,5746,505],{"class":504},[495,5748,3377],{"class":750},[495,5750,96],{"class":623},[495,5752,3374],{"class":504},[495,5754,3607],{"class":623},[495,5756,3374],{"class":504},[495,5758,4856],{"class":623},[495,5760,517],{"class":504},[495,5762,5763],{"class":623},"Processor",[495,5765,620],{"class":504},[495,5767,1884],{"class":750},[495,5769,96],{"class":623},[495,5771,4308],{"class":504},[495,5773,5774,5776,5779,5781,5783,5785,5787,5789,5791,5793,5795,5797,5799,5801,5803,5805,5807,5809,5811,5813,5815,5818,5820,5822,5824],{"class":497,"line":586},[495,5775,1037],{"class":925},[495,5777,5778],{"class":520}," Fallback",[495,5780,524],{"class":504},[495,5782,5530],{"class":3357},[495,5784,4856],{"class":623},[495,5786,517],{"class":504},[495,5788,5537],{"class":623},[495,5790,505],{"class":504},[495,5792,5460],{"class":3357},[495,5794,5463],{"class":750},[495,5796,1730],{"class":623},[495,5798,517],{"class":504},[495,5800,1879],{"class":623},[495,5802,620],{"class":504},[495,5804,1884],{"class":750},[495,5806,96],{"class":623},[495,5808,4328],{"class":504},[495,5810,3377],{"class":750},[495,5812,1730],{"class":623},[495,5814,517],{"class":504},[495,5816,5817],{"class":623},"Fallback",[495,5819,620],{"class":504},[495,5821,1884],{"class":750},[495,5823,96],{"class":623},[495,5825,4308],{"class":504},[495,5827,5828,5830,5833,5835,5837,5839,5841,5843,5845,5847,5849,5851,5853,5855,5857,5859,5862,5865,5867,5869,5871,5873,5875,5878,5880,5882,5884],{"class":497,"line":609},[495,5829,1037],{"class":925},[495,5831,5832],{"class":520}," Retry",[495,5834,524],{"class":504},[495,5836,5530],{"class":3357},[495,5838,4856],{"class":623},[495,5840,517],{"class":504},[495,5842,5537],{"class":623},[495,5844,505],{"class":504},[495,5846,4853],{"class":3357},[495,5848,4856],{"class":623},[495,5850,517],{"class":504},[495,5852,1879],{"class":623},[495,5854,620],{"class":504},[495,5856,1884],{"class":750},[495,5858,96],{"class":623},[495,5860,5861],{"class":504},"],",[495,5863,5864],{"class":3357}," maxAttempts",[495,5866,5247],{"class":623},[495,5868,3374],{"class":504},[495,5870,3377],{"class":750},[495,5872,1730],{"class":623},[495,5874,517],{"class":504},[495,5876,5877],{"class":623},"Retry",[495,5879,620],{"class":504},[495,5881,1884],{"class":750},[495,5883,96],{"class":623},[495,5885,4308],{"class":504},[495,5887,5888,5890,5893,5895,5897,5899,5901,5903,5905,5907,5909,5911,5913,5915,5917,5919,5921,5923,5925,5927,5930,5932,5934,5937,5939,5941,5943,5945,5948,5950,5952,5954],{"class":497,"line":641},[495,5889,1037],{"class":925},[495,5891,5892],{"class":520}," Backoff",[495,5894,524],{"class":504},[495,5896,5530],{"class":3357},[495,5898,4856],{"class":623},[495,5900,517],{"class":504},[495,5902,5537],{"class":623},[495,5904,505],{"class":504},[495,5906,4853],{"class":3357},[495,5908,4856],{"class":623},[495,5910,517],{"class":504},[495,5912,1879],{"class":623},[495,5914,620],{"class":504},[495,5916,1884],{"class":750},[495,5918,96],{"class":623},[495,5920,5861],{"class":504},[495,5922,5864],{"class":3357},[495,5924,5247],{"class":623},[495,5926,505],{"class":504},[495,5928,5929],{"class":3357}," baseDelay",[495,5931,3317],{"class":623},[495,5933,517],{"class":504},[495,5935,5936],{"class":623},"Duration",[495,5938,3374],{"class":504},[495,5940,3377],{"class":750},[495,5942,1730],{"class":623},[495,5944,517],{"class":504},[495,5946,5947],{"class":623},"Backoff",[495,5949,620],{"class":504},[495,5951,1884],{"class":750},[495,5953,96],{"class":623},[495,5955,4308],{"class":504},[495,5957,5958,5960,5963,5965,5967,5969,5971,5973,5975,5977,5979,5981,5983,5985,5987,5989,5991,5994,5996,5998,6000,6002,6004,6006,6008,6011,6013,6015,6017],{"class":497,"line":663},[495,5959,1037],{"class":925},[495,5961,5962],{"class":520}," Timeout",[495,5964,524],{"class":504},[495,5966,5530],{"class":3357},[495,5968,4856],{"class":623},[495,5970,517],{"class":504},[495,5972,5537],{"class":623},[495,5974,505],{"class":504},[495,5976,4853],{"class":3357},[495,5978,4856],{"class":623},[495,5980,517],{"class":504},[495,5982,1879],{"class":623},[495,5984,620],{"class":504},[495,5986,1884],{"class":750},[495,5988,96],{"class":623},[495,5990,5861],{"class":504},[495,5992,5993],{"class":3357}," duration",[495,5995,3317],{"class":623},[495,5997,517],{"class":504},[495,5999,5936],{"class":623},[495,6001,3374],{"class":504},[495,6003,3377],{"class":750},[495,6005,1730],{"class":623},[495,6007,517],{"class":504},[495,6009,6010],{"class":623},"Timeout",[495,6012,620],{"class":504},[495,6014,1884],{"class":750},[495,6016,96],{"class":623},[495,6018,4308],{"class":504},[495,6020,6021,6023,6026,6028,6030,6032,6034,6036,6038,6041,6043,6045,6047,6049,6051,6053,6055,6057,6059,6061,6063,6065,6067,6069,6071,6073,6075,6077,6079,6081,6084,6086,6088,6090,6092,6094,6096,6098,6100,6102,6104,6106,6108,6110,6112,6114,6116,6119,6121,6123,6125],{"class":497,"line":686},[495,6022,1037],{"class":925},[495,6024,6025],{"class":520}," Concurrent",[495,6027,524],{"class":504},[495,6029,5530],{"class":3357},[495,6031,4856],{"class":623},[495,6033,517],{"class":504},[495,6035,5537],{"class":623},[495,6037,505],{"class":504},[495,6039,6040],{"class":3357}," reducer",[495,6042,5598],{"class":925},[495,6044,524],{"class":504},[495,6046,1884],{"class":750},[495,6048,96],{"class":623},[495,6050,505],{"class":504},[495,6052,3560],{"class":925},[495,6054,620],{"class":504},[495,6056,1730],{"class":623},[495,6058,517],{"class":504},[495,6060,5537],{"class":623},[495,6062,1872],{"class":504},[495,6064,1884],{"class":750},[495,6066,96],{"class":623},[495,6068,505],{"class":504},[495,6070,3560],{"class":925},[495,6072,620],{"class":504},[495,6074,1730],{"class":623},[495,6076,517],{"class":504},[495,6078,5537],{"class":623},[495,6080,1872],{"class":504},[495,6082,6083],{"class":623},"error",[495,6085,3374],{"class":504},[495,6087,3377],{"class":750},[495,6089,96],{"class":623},[495,6091,505],{"class":504},[495,6093,5460],{"class":3357},[495,6095,5463],{"class":750},[495,6097,1730],{"class":623},[495,6099,517],{"class":504},[495,6101,1879],{"class":623},[495,6103,620],{"class":504},[495,6105,1884],{"class":750},[495,6107,96],{"class":623},[495,6109,4328],{"class":504},[495,6111,3377],{"class":750},[495,6113,1730],{"class":623},[495,6115,517],{"class":504},[495,6117,6118],{"class":623},"Concurrent",[495,6120,620],{"class":504},[495,6122,1884],{"class":750},[495,6124,96],{"class":623},[495,6126,4308],{"class":504},[495,6128,6129,6131,6134,6136,6138,6140,6142,6144,6146,6148,6150,6152,6154,6156,6158,6160,6162,6164,6166,6168,6170,6173,6175,6177,6179],{"class":497,"line":695},[495,6130,1037],{"class":925},[495,6132,6133],{"class":520}," Race",[495,6135,524],{"class":504},[495,6137,5530],{"class":3357},[495,6139,4856],{"class":623},[495,6141,517],{"class":504},[495,6143,5537],{"class":623},[495,6145,505],{"class":504},[495,6147,5460],{"class":3357},[495,6149,5463],{"class":750},[495,6151,1730],{"class":623},[495,6153,517],{"class":504},[495,6155,1879],{"class":623},[495,6157,620],{"class":504},[495,6159,1884],{"class":750},[495,6161,96],{"class":623},[495,6163,4328],{"class":504},[495,6165,3377],{"class":750},[495,6167,1730],{"class":623},[495,6169,517],{"class":504},[495,6171,6172],{"class":623},"Race",[495,6174,620],{"class":504},[495,6176,1884],{"class":750},[495,6178,96],{"class":623},[495,6180,4308],{"class":504},[478,6182,341],{"id":6183},"provider-management",[486,6185,6187],{"className":488,"code":6186,"language":490,"meta":64,"style":64},"func SetProvider(p Provider)\nfunc GetProvider() Provider\nfunc WithProvider(ctx context.Context, p Provider) context.Context\nfunc ProviderFromContext(ctx context.Context) (Provider, bool)\nfunc ResolveProvider(ctx context.Context, stepProvider Provider) (Provider, error)\n",[492,6188,6189,6204,6216,6248,6277],{"__ignoreMap":64},[495,6190,6191,6193,6196,6198,6200,6202],{"class":497,"line":9},[495,6192,1037],{"class":925},[495,6194,6195],{"class":520}," SetProvider",[495,6197,524],{"class":504},[495,6199,404],{"class":3357},[495,6201,4101],{"class":623},[495,6203,541],{"class":504},[495,6205,6206,6208,6211,6213],{"class":497,"line":20},[495,6207,1037],{"class":925},[495,6209,6210],{"class":520}," GetProvider",[495,6212,774],{"class":504},[495,6214,6215],{"class":623}," Provider\n",[495,6217,6218,6220,6222,6224,6226,6228,6230,6232,6234,6237,6239,6241,6243,6245],{"class":497,"line":70},[495,6219,1037],{"class":925},[495,6221,4094],{"class":520},[495,6223,524],{"class":504},[495,6225,527],{"class":3357},[495,6227,1054],{"class":623},[495,6229,517],{"class":504},[495,6231,3364],{"class":623},[495,6233,505],{"class":504},[495,6235,6236],{"class":3357}," p",[495,6238,4101],{"class":623},[495,6240,3374],{"class":504},[495,6242,1054],{"class":623},[495,6244,517],{"class":504},[495,6246,6247],{"class":623},"Context\n",[495,6249,6250,6252,6255,6257,6259,6261,6263,6265,6267,6269,6271,6273,6275],{"class":497,"line":235},[495,6251,1037],{"class":925},[495,6253,6254],{"class":520}," ProviderFromContext",[495,6256,524],{"class":504},[495,6258,527],{"class":3357},[495,6260,1054],{"class":623},[495,6262,517],{"class":504},[495,6264,3364],{"class":623},[495,6266,3374],{"class":504},[495,6268,3429],{"class":504},[495,6270,131],{"class":623},[495,6272,505],{"class":504},[495,6274,3607],{"class":623},[495,6276,541],{"class":504},[495,6278,6279,6281,6284,6286,6288,6290,6292,6294,6296,6299,6301,6303,6305,6307,6309,6311],{"class":497,"line":586},[495,6280,1037],{"class":925},[495,6282,6283],{"class":520}," ResolveProvider",[495,6285,524],{"class":504},[495,6287,527],{"class":3357},[495,6289,1054],{"class":623},[495,6291,517],{"class":504},[495,6293,3364],{"class":623},[495,6295,505],{"class":504},[495,6297,6298],{"class":3357}," stepProvider",[495,6300,4101],{"class":623},[495,6302,3374],{"class":504},[495,6304,3429],{"class":504},[495,6306,131],{"class":623},[495,6308,505],{"class":504},[495,6310,3643],{"class":623},[495,6312,541],{"class":504},[478,6314,346],{"id":6315},"utilities",[486,6317,6319],{"className":488,"code":6318,"language":490,"meta":64,"style":64},"func RenderNotesToContext(notes []Note) string\n",[492,6320,6321],{"__ignoreMap":64},[495,6322,6323,6325,6328,6330,6333,6335,6337,6339],{"class":497,"line":9},[495,6324,1037],{"class":925},[495,6326,6327],{"class":520}," RenderNotesToContext",[495,6329,524],{"class":504},[495,6331,6332],{"class":3357},"notes",[495,6334,3736],{"class":504},[495,6336,111],{"class":623},[495,6338,3374],{"class":504},[495,6340,3977],{"class":623},[478,6342,351],{"id":6343},"configuration",[486,6345,6347],{"className":488,"code":6346,"language":490,"meta":64,"style":64},"var DefaultIntrospection = false\nvar DefaultReasoningTemperature = 0.0\nvar DefaultIntrospectionTemperature = 0.7\n",[492,6348,6349,6363,6375],{"__ignoreMap":64},[495,6350,6351,6354,6357,6360],{"class":497,"line":9},[495,6352,6353],{"class":925},"var",[495,6355,6356],{"class":500}," DefaultIntrospection",[495,6358,6359],{"class":500}," =",[495,6361,6362],{"class":925}," false\n",[495,6364,6365,6367,6370,6372],{"class":497,"line":20},[495,6366,6353],{"class":925},[495,6368,6369],{"class":500}," DefaultReasoningTemperature",[495,6371,6359],{"class":500},[495,6373,6374],{"class":1229}," 0.0\n",[495,6376,6377,6379,6382,6384],{"class":497,"line":70},[495,6378,6353],{"class":925},[495,6380,6381],{"class":500}," DefaultIntrospectionTemperature",[495,6383,6359],{"class":500},[495,6385,6386],{"class":1229}," 0.7\n",[2108,6388,6389],{},"html pre.shiki code .sUt3r, html code.shiki .sUt3r{--shiki-default:var(--shiki-keyword)}html pre.shiki code .sYBwO, html code.shiki .sYBwO{--shiki-default:var(--shiki-type)}html pre.shiki code .sq5bi, html code.shiki .sq5bi{--shiki-default:var(--shiki-punctuation)}html pre.shiki code .sBGCq, html code.shiki .sBGCq{--shiki-default:var(--shiki-property)}html pre.shiki code .sLkEo, html code.shiki .sLkEo{--shiki-default:var(--shiki-comment)}html pre.shiki code .sW3Qg, html code.shiki .sW3Qg{--shiki-default:var(--shiki-operator)}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s5klm, html code.shiki .s5klm{--shiki-default:var(--shiki-function)}html pre.shiki code .sSYET, html code.shiki .sSYET{--shiki-default:var(--shiki-parameter)}html pre.shiki code .sh8_p, html code.shiki .sh8_p{--shiki-default:var(--shiki-text)}html pre.shiki code .sMAmT, html code.shiki .sMAmT{--shiki-default:var(--shiki-number)}",{"title":64,"searchDepth":20,"depth":20,"links":6391},[6392,6396,6403,6404,6405,6406],{"id":3232,"depth":20,"text":224,"children":6393},[6394,6395],{"id":501,"depth":70,"text":96},{"id":3947,"depth":70,"text":111},{"id":4037,"depth":20,"text":247,"children":6397},[6398,6399,6400,6401,6402],{"id":4040,"depth":70,"text":251},{"id":4819,"depth":70,"text":280},{"id":5014,"depth":70,"text":294},{"id":5130,"depth":70,"text":303},{"id":5317,"depth":70,"text":322},{"id":5513,"depth":20,"text":336},{"id":6183,"depth":20,"text":341},{"id":6315,"depth":20,"text":346},{"id":6343,"depth":20,"text":351},{},"2025-12-01T00:00:00.000Z",null,{"title":215,"description":217},[12,6412,2063],"api","2026-02-21T00:00:00.000Z","Ym6NozGAYJtgUslUgmka9dUf4BGvyLEYXUDtaPlffw8",[6416,6409],{"title":33,"path":144,"stem":372,"description":146,"children":-1},1776192784426]