project:
  type: website
  post-render: scripts/post-render.py
  title: "Talk Box"

format:
  html:
    theme: flatly
    css:
      - styles.css
      - reference/_styles-quartodoc.css
    toc: true
    grid:
      sidebar-width: 270px
      body-width: 950px
      margin-width: 225px
      gutter-width: 1rem

website:
  title: "Talk Box"
  description: "The best way to generate, test, and deploy LLM chatbots"
  site-url: "https://rich-iannone.github.io/talk-box"
  repo-url: "https://github.com/rich-iannone/talk-box"
  search:
    show-item-context: true
  page-navigation: true
  bread-crumbs: false
  navbar:
    background: primary
    search: true
    left:
      - text: "Home"
        href: index.qmd
      - text: "User Guide"
        file: user-guide/index.qmd
      - href: reference/index.qmd
        text: API Reference
    right:
      - icon: github
        href: "https://github.com/rich-iannone/talk-box"
        aria-label: "GitHub"
  sidebar:
    id: user-guide
    contents:
      - section: "Getting Started"
        contents:
          - user-guide/index.qmd
          - user-guide/installation.qmd
      - section: "Prompt Engineering"
        contents:
          - user-guide/prompt-builder.qmd
          - user-guide/vocabulary.qmd
          - user-guide/pathways.qmd
          - user-guide/tools.qmd
      - section: "Core Concepts"
        contents:
          - user-guide/chatbot-basics.qmd
          - user-guide/model-selection.qmd
          - user-guide/file-attachments.qmd
          - user-guide/react-chat.qmd
      - section: "Testing & Validation"
        contents:
          - user-guide/testing-avoid-topics.qmd
  page-footer:
    left: |
      Talk Box is developed by [Rich Iannone](https://github.com/rich-iannone).
    center: |
      Made with [Quarto](https://quarto.org/).
    right: |
      [License](https://github.com/rich-iannone/talk-box/blob/main/LICENSE)

html-table-processing: none

quartodoc:
  dir: reference
  package: talk_box
  style: pkgdown
  renderer:
    style: markdown
    table_style: description-list
  sections:
    - title: "Getting Started"
      desc: "Core classes and basic chatbot setup"
      contents:
        - name: ChatBot
          members: []
        - ChatBot.model
        - ChatBot.preset
        - ChatBot.temperature
        - ChatBot.max_tokens
        - ChatBot.tools
        - ChatBot.persona
        - ChatBot.avoid
        - ChatBot.verbose
    - title: "Prompt Engineering"
      desc: "Advanced prompt building and conversation pathways"
      contents:
        - name: PromptBuilder
          members: []
        - PromptBuilder.persona
        - PromptBuilder.task_context
        - PromptBuilder.focus_on
        - PromptBuilder.critical_constraint
        - PromptBuilder.core_analysis
        - PromptBuilder.structured_section
        - PromptBuilder.constraint
        - PromptBuilder.avoid_topics
        - PromptBuilder.output_format
        - PromptBuilder.example
        - PromptBuilder.final_emphasis
        - PromptBuilder.vocabulary
        - PromptBuilder.pathways
        - name: VocabularyTerm
          members: []
        - name: Pathways
          members: []
        - Pathways.state
        - Pathways.required
        - Pathways.optional
        - Pathways.tools
        - Pathways.success_condition
        - Pathways.next_state
        - Pathways.branch_on
        - Pathways.fallback
        - ChatBot.prompt_builder
        - ChatBot.structured_prompt
        - ChatBot.chain_prompts
        - architectural_analysis_prompt
        - code_review_prompt
        - debugging_prompt
    - title: "Conversations & Messages"
      desc: "Managing conversations, messages, and context"
      contents:
        - name: Conversation
          members: []
        - Conversation.add_message
        - Conversation.add_user_message
        - Conversation.add_assistant_message
        - Conversation.add_system_message
        - Conversation.clear_messages
        - Conversation.get_messages
        - Conversation.get_last_message
        - Conversation.get_message_count
        - Conversation.get_context_messages
        - Conversation.set_context_window
        - Conversation.to_dict
        - Conversation.from_dict
        - name: Message
          members: []
        - Message.to_dict
        - Message.from_dict
    - title: "File Attachments"
      desc: "Attaching and processing files in conversations"
      contents:
        - name: Attachments
          members: []
        - Attachments.with_prompt
        - Attachments.get_metadata
        - Attachments.summary
        - name: AttachmentMetadata
          members: []
    - title: "Presets & Templates"
      desc: "Behavior templates and preset management"
      contents:
        - name: Preset
          members: []
        - name: PresetManager
          members: []
    - title: "Testing & Validation"
      desc: "Tools for testing chatbot behavior and compliance"
      contents:
        - autotest_avoid_topics
        - name: TestResults
          members: []
    - title: "Supporting Types"
      desc: "Internal types and enums for advanced usage"
      contents:
        - name: Priority
          members: []
        - name: PromptSection
          members: []
        - name: BuilderTypes
          members: []
