Commit Graph

109 Commits

Author SHA1 Message Date
Gemini AI 13bce7500c feat: Full code review, bug fixes, and philosophy book generation
This commit includes:
- A full code review and bug fixes for language drift, package loading, and CLI crashes.
- The generated 15,000-word philosophy manuscript.
- CODE_REVIEW.md and CHANGELOG.md documenting the process.
2026-05-20 21:15:11 +00:00
Gemini AI dddf5c4a80 Add final audit report 2026-05-18 00:22:34 +00:00
Gemini AI f7d0aee148 Audit, bug fixes, and coherence enhancements by Gemini AI 2026-05-18 00:22:26 +00:00
Solaria 5d45451121 Update README with all features: Scrivener, LaTeX, templates, deployment 2026-03-14 23:45:27 +00:00
Solaria e821c0fe55 Add Docker Compose and Dockerfile 2026-03-14 23:42:30 +00:00
Solaria 1b94a71f02 Add k3s Helm charts for Opus API and TeX Live API 2026-03-14 23:32:38 +00:00
Solaria 1a627dc099 Add TeX Live API client and deployment configs 2026-03-14 23:29:13 +00:00
Solaria a9d10583bd Add more templates: romance, thriller, koma, cookbook 2026-03-14 19:52:56 +00:00
Solaria 4d3255c9aa Add more templates: tufte, sci-fi, business, minimal 2026-03-14 17:39:38 +00:00
Solaria d8047bdd2f Add established templates: classicthesis, legrand, cleanthesis, university-press 2026-03-14 17:29:48 +00:00
Solaria ada022709a Add RPG templates: rulebook, adventure, CYOA 2026-03-14 17:19:25 +00:00
Solaria 7fdc8d8948 Add 8 more LaTeX templates: kdp sizes, hardcover, screenplay, journal 2026-03-14 17:15:15 +00:00
Solaria 35d7b1ff08 Add LaTeX templates: novel, kdp-trade, poetry, textbook, childrens 2026-03-14 17:10:11 +00:00
Solaria b809713a52 Add HTML export - browser-based PDF, no LaTeX deps 2026-03-14 15:04:50 +00:00
Solaria 8693d2ffa9 Add LaTeX compile support with templates (memoir, academic) 2026-03-14 13:16:09 +00:00
Solaria c42556d147 Add ExportOptions and auto-branch push to Scrivener export 2026-03-14 12:52:32 +00:00
Solaria 0ebf662d59 Add Scrivener-style export with chapter splitting and binder.json 2026-03-14 12:06:12 +00:00
Solaria 134b74d690 Update default model to MiniMax-M2.5 2026-03-14 11:24:36 +00:00
Solaria 01806579c3 Remove OpenAI fallback - MiniMax only 2026-03-14 11:23:49 +00:00
Solaria fe6dcf4124 Make MiniMax primary provider (default, cost-effective) 2026-03-14 11:23:04 +00:00
Solaria b417626778 Add comprehensive test suite: GitHub, S3, Generation, Output, E2E
- tests/test_github_ingest.py - GitHub repository ingestion
- tests/test_s3_ingest.py - S3/Backblaze ingestion
- tests/test_generation.py - Document generation
- tests/test_output_push.py - Output file and push handling
- tests/test_e2e.py - End-to-end integration tests

Closes #58
2026-03-14 10:54:37 +00:00
Solaria e73969cc63 Merge fix/fake-streaming into fix/hardcoded-timeout 2026-03-14 09:30:13 +00:00
Solaria 51fe18323f Fix CRITICAL issues: timeout config, request validation, streaming (#37, #38, #39) 2026-03-14 09:30:01 +00:00
Solaria 585e9a4713 Make LLM timeout configurable via AgentConfig (#37) 2026-03-14 09:29:01 +00:00
mrhavens 919f6b9e42 Remove unused load_dotenv import (#36) 2026-03-14 09:24:45 +00:00
mrhavens 0f62267806 Fix circular import in __init__.py (#35) 2026-03-14 09:24:31 +00:00
mrhavens 1b116108a6 Merge: fix-docs - Add module docstrings 2026-03-14 05:37:34 +00:00
mrhavens 2716dab0dc Merge: fix-logging - Add structured logging 2026-03-14 05:37:34 +00:00
mrhavens 31def1a70b Merge: fix-validation - Add Pydantic validation 2026-03-14 05:37:34 +00:00
mrhavens 9a2e429378 fix(docs): Add module docstrings 2026-03-14 05:37:27 +00:00
mrhavens b52739ca5c fix(logging): Add structured logging module
- Created logging.py with:
  - setup_logging() function
  - Configurable levels
  - Console and file handlers
  - Structured format

This addresses the logging gap.
2026-03-14 05:37:19 +00:00
mrhavens 1f4e7bea6b fix(validation): Add Pydantic request validation
- Created schemas/requests.py with validated models:
  - GenerateRequest
  - IngestRequest
  - ConfigRequest
- Validates: concept length, repo format, numeric ranges
- Prevents invalid input from reaching handlers

This addresses input validation concern.
2026-03-14 05:36:51 +00:00
mrhavens 9148ebaad5 Merge: fix-reliability - Add retry logic and circuit breaker 2026-03-14 05:25:43 +00:00
mrhavens 5b68459e12 Merge: fix-testing - Add comprehensive tests 2026-03-14 05:25:43 +00:00
mrhavens b5da8d272c fix(reliability): Add retry logic and circuit breaker
- Created utils/retry.py with:
  - RetryHandler with exponential backoff
  - CircuitBreaker pattern
  - Config for max attempts, delays
  - Graceful degradation

- Updated LLM client to use retry logic
- API failures now retry with backoff
- Circuit breaker prevents cascade failures
- Graceful degradation on prolonged failures

This addresses the reliability gap identified in code review.
2026-03-14 05:24:09 +00:00
mrhavens d4abe70a79 fix(testing): Add comprehensive test suite
- test_nonfiction.py with 100+ test cases
- Tests for PurposeClassifier
- Tests for taxonomy/frameworks
- Tests for critique criteria
- Tests for all framework types
- Tests for intake agent
- Tests for multi-source ingest

This addresses the testing gap identified in code review.
2026-03-14 05:22:45 +00:00
mrhavens 16cf8cd5ef feat: Add Code Review Crew
Created code_review_crew.py - 5 expert agents:
- SecurityExpert
- PerformanceExpert
- ArchitectureExpert
- TestingExpert
- ErrorHandlingExpert

Each audits specific domain and reports issues.

Also creates initial code review findings as issues.
2026-03-14 05:13:54 +00:00
mrhavens cfbb701284 feat: Add Agent-Driven Web Crawler
Created agent_crawler.py:

AgentWebCrawler - AI-powered crawling that:
1. Analyzes site structure (LLM)
2. Decides what to crawl based on purpose
3. Scores relevance dynamically
4. Adapts as it learns more
5. Knows when it has enough

Purpose types:
- DOCUMENTATION - Technical docs, guides
- TRAINING - Learning materials
- KNOWLEDGE - General knowledge base
- RESEARCH - Research papers
- REFERENCE - Reference material

Usage:

Features:
- Content extraction (not HTML dump)
- Relevance scoring
- Rate limiting
- Configurable depth/pages
- Integration with multi-source ingest
2026-03-14 05:00:44 +00:00
mrhavens 750d30b4de feat: Add Multi-Source Ingestion
Created multi_source_ingest.py:

- MultiSourceIngestor class
- Supports: GitHub repos, S3 buckets, local files, URLs
- Merge strategies: append, smart (deduplicate), priority

Usage:

Features:
- Deduplicates overlapping content
- Tracks source attribution
- Builds summary of ingested content
- Multiple merge strategies
- Hash-based content tracking
2026-03-14 04:22:07 +00:00
mrhavens 039faa660e docs: Update README and add comprehensive framework documentation
- Rewrote README with all 100+ frameworks organized by category
- Added Nonfiction Framework Library docs (docs/NONFICTION_FRAMEWORKS.md)
- Documented all purposes: learn, understand, transform, decide, reference, inspire
- Added framework tables by category
- Documented new categories: Textbook, Academic, Creative, RPG
- Added CLI usage examples
- Added programmatic usage examples
2026-03-14 01:17:51 +00:00
mrhavens 110aab6ce9 feat: Add RPG & Tabletop Gaming Frameworks
Created rpg_frameworks.py with 15 RPG content types:

CORE RULEBOOKS:
1. Core Rulebook - Main game system (300-500 pages)
2. Quickstart - Condensed intro (16-32 pages)

GAME MASTER GUIDES:
3. Game Master Guide - Running games, worldbuilding
4. Adventure Module - Ready-to-run adventure
5. Campaign Setting - Complete world sourcebook

SUPPLEMENTS:
6. Player's Companion - New races/classes/options
7. Monster Manual - Creatures catalog
8. Thematic Sourcebook - Deep dive on theme

ADVENTURE TYPES:
9. Dungeon Crawl - Classic dungeon delve
10. Hex Crawl - Open world sandbox
11. Dungeon World Style - Narrative-forward

SPECIALTY:
12. Worldbuilding Guide - How to build worlds
13. Props and Handouts - Physical/digital props
14. Solo Adventure - Single player RPG
15. LARP Document - Live action roleplaying

Each includes detailed stages, prompt templates, tone guidance, typical length.

Functions:
- get_rpg_frameworks()
- suggest_rpg_framework()
2026-03-14 01:10:11 +00:00
mrhavens 2be17c5e85 feat: Add Creative and Interactive Frameworks
Created creative_frameworks.py with 14 creative formats:

INTERACTIVE/BRANCHING:
1. Choose Your Own Adventure - Branching narrative
2. Gamebook - RPG-style fighting fantasy
3. Visual Novel - Anime/VN script style

EPISTOLARY/DOCUMENTS:
4. Epistolary Novel - Letters, emails, texts
5. Found Documents - Discovered artifacts

MANIFESTO/CALL TO ACTION:
6. Manifesto - Revolutionary call to action
7. Open Letter - Public letter

EXPERIMENTAL:
8. Infinite Story - Serial/neverending
9. Fractal Narrative - Self-similar structure
10. Scrapbook - Non-linear fragments

AUDIO/PERFORMANCE:
11. Podcast Script - Spoken audio content
12. Screenplay - Hollywood film script
13. Stage Play - Theatrical script

Each includes detailed stages, prompt templates, tone guidance.
2026-03-14 01:04:40 +00:00
mrhavens 2778d98e0d feat: Add Academic Paper Frameworks
Created academic_papers.py with 12 established academic paper types:

RESEARCH PAPERS:
1. Empirical Paper - experiments, data collection
2. Theoretical Paper - concepts, models, proofs
3. Methodology Paper - new methods/techniques
4. Case Study Paper - in-depth single case
5. Survey Paper - comprehensive field overview

ARGUMENTATIVE:
6. Position Paper - argue for a stance
7. Policy Brief - recommendations to decision-makers

CRITICAL ANALYSIS:
8. Critical Review - evaluate existing work
9. Meta-Analysis - statistical synthesis

SHORT FORMS:
10. Short Communication - brief findings report
11. Conference Proposal - conference abstract
12. Thesis Proposal - graduate research proposal

Each includes:
- Detailed stages
- Prompt templates
- Tone guidance
- Typical length
- Audience

Functions:
- get_academic_paper_types()
- suggest_academic_paper()
2026-03-14 00:51:12 +00:00
mrhavens 2c7f5a7fca feat: Add Textbook & Academic Frameworks
Created textbook_frameworks.py with 10 educational frameworks:

TEXTBOOK & ACADEMIC (10):
1. Comprehensive Textbook - Complete academic textbook
2. Textbook Chapter - Single modular chapter
3. Online Course / MOOC - Video-friendly course structure
4. Curriculum / Syllabus - Course planning document
5. Study Guide - Exam prep with practice
6. Academic Research Paper - IMRAD format
7. Literature Review - Systematic synthesis
8. Thesis / Dissertation - Graduate research
9. Workbook / Practice Book - Interactive exercises
10. Quick Reference Guide - Cheat sheet / scannable
11. Knowledge Base / Wiki - Organized articles

Each includes:
- Detailed stages
- Purpose mapping
- Prompt templates
- Tone guidance
- Typical length
- Target audience

Functions:
- get_textbook_frameworks()
- suggest_textbook_framework()

These are the foundational 'Field Anchors' for structured learning.
2026-03-14 00:10:17 +00:00
mrhavens ef932973cd feat: Add --thread-id and --resume flags for checkpointing
- Add --thread-id flag to CLI for checkpointing
- Add --resume flag to resume from checkpoint
- Generate UUID if no thread_id provided
- Display thread_id for user to save for resume

Usage:
  opus generate --concept "My book" --thread-id abc123
  # If fails:
  opus generate --concept "My book" --thread-id abc123 --resume
2026-03-13 23:24:41 +00:00
mrhavens 14b22fc8f6 feat: Issue #15 - Research Agent Integration
Created research_integration.py to connect research agent to pipeline:

ResearchIntegrator class:
- research_for_book(): Research for entire book
- research_chapter(): Research specific chapter
- should_use_research(): Determine if purpose needs research
- get_research_stages(): When to integrate research

Research stages:
- Pre-writing: Gather research before writing
- Per-chapter: Research each chapter
- Verification: Check facts post-writing
- Enhancement: Strengthen content with research

Purpose-specific research config:
- UNDERSTAND: Deep research, include academic
- DECIDE: Deep, studies, data, comparisons
- TRANSFORM: Case studies, success stories
- LEARN_HANDS_ON: Best practices, methods
- REFERENCE: Comprehensive documentation
- BE_INSPIRED: Stories, journeys, examples

Functions:
- get_research_config_for_purpose()

The research agent is now integrated into the nonfiction pipeline.
2026-03-13 23:09:57 +00:00
mrhavens f1a5a24504 feat: Issue #22 - Expand Framework Library (35+ Expert Frameworks)
Created expanded_frameworks.py with 35+ top-tier frameworks:

**BUSINESS & LEADERSHIP (8)**
- Big Idea (Jim Collins)
- The One Thing (Gary Keller)
- Blue Ocean Strategy
- Four Disciplines of Execution
- Good to Great

**MEMOIR & PERSONAL NARRATIVE (5)**
- Mountain Structure Memoir
- Loss and Gain
- Scene-Driven Memoir
- Single-Moment Pivot
- Addiction & Recovery

**PHILOSOPHY & IDEAS (3)**
- Socratic Method
- Argumentative Essay
- Danish Philosopher (Kierkegaard)

**SCIENCE & EXPLANATION (4)**
- Discovery Narrative
- Personal Experiment
- Explainer (Pinker style)
- Mental Models

**HISTORY (4)**
- Chronological Narrative
- Thematic History
- Comparative History
- Cause-and-Effect Chain

**HOW-TO NON-TECHNICAL (4)**
- Problem-Agitation-Solution
- Reverse Engineering
- Minimalist How-To
- Challenge-Response

**THOUGHT LEADERSHIP (3)**
- Contrarian + Proof
- Future + Now
- Mistake → Learning

**SPIRITUALITY & WELLNESS (2)**
- Spiritual Journey
- Healing Narrative

**RELATIONSHIPS (2)**
- Relationship Blueprint
- Communication Mastery

Each framework includes:
- Detailed description
- Purpose mapping
- Structure pattern
- 6-9 stage breakdown
- Prompt template
- Tone guidance
- Typical length
- Target audience

Functions:
- get_frameworks_by_category()
- suggest_framework_for_book()
- get_total_framework_count()
2026-03-13 23:04:32 +00:00
mrhavens d3bc43daca feat: Issue #21 - Purpose-Based Critique Criteria
Created critique_criteria.py with purpose-specific evaluation:

TUTORIAL:
- Clarity (30%), Completeness (25%), Progressiveness (20%)
- Actionability (15%), Error Prevention (10%)

EXPLAINER:
- Analogy Quality (25%), Examples (25%), Mental Model (20%)
- Depth (15%), Misconceptions (15%)

TRANSFORMATION:
- Emotional Honesty (30%), Relatability (25%), Hope (20%)
- Specificity (15%), Actionability (10%)

DECIDE:
- Evidence Quality (30%), Balance (25%), Credibility (20%)
- Clarity (15%), Completeness (10%)

REFERENCE:
- Accuracy (35%), Completeness (30%), Organization (20%)
- Examples (15%)

INSPIRED:
- Emotional Impact (30%), Vision (25%), Authenticity (25%)
- Story Quality (20%)

Each criterion has:
- Weight
- Description
- Evaluation questions
- Pass threshold

Functions:
- get_critique_criteria(purpose) → CritiqueCriteriaSet
- evaluate_chapter(content, purpose) → scores
- get_evaluation_prompt(content, purpose) → LLM prompt
- list_all_criteria() → overview
2026-03-13 22:30:26 +00:00
mrhavens be64111515 feat: Issue #20 - Purpose-Based Agent Selection
Created purpose-specific writing agents:

- purpose_writers.py with 6 specialized agents:
  - TutorialWriter: Hands-on learning (steps, exercises, encouragement)
  - ExplainerWriter: Conceptual understanding (analogies, mental models)
  - TransformationWriter: Personal change (emotional honesty, journey)
  - EvidenceWriter: Data-driven decisions (evidence, tradeoffs)
  - ReferenceWriter: Comprehensive reference (completeness, accuracy)
  - VisionaryWriter: Inspirational content (emotion, vision)

Each agent has:
- 100+ line specialized system prompt
- Purpose-specific writing rules
- Structure guidance
- Tone guidance
- Example phrases

Factory functions:
- get_writer_for_purpose(purpose) → BaseAgent
- select_writer_agent(purpose) → str
- list_available_writers() → dict

This completes Issue #20.
2026-03-13 22:26:24 +00:00
mrhavens 8cf833c729 feat: Content-Based Purpose Inference
Added content_infer.py - analyzes existing content to infer purpose:

- ContentPurposeInferer class
- Analyzes blog posts, articles, text
- Detects signals: tutorials, explainers, transformation stories, etc.
- Returns purpose, confidence, reasoning

Updated intake.py to weight all signals:
1. Explicit flags (weight: 1.0)
2. Content inference (weight: 0.4) - NEW
3. Keyword classification (weight: 0.3)
4. Conversational (weight: 0.5)

Now if you point at a blog:
- Tutorial posts → LEARN_HANDS_ON
- Explainers → UNDERSTAND
- Transformation stories → TRANSFORM
- Reviews/Comparisons → DECIDE
- Reference docs → REFERENCE
- Journey/Biography → BE_INSPIRED
2026-03-13 20:50:36 +00:00