.gitattributes
.gitignore
CLAUDE.md
CONTRIBUTING.md
LICENSE
README.md
pyproject.toml
.github/pull_request_template.md
.github/ISSUE_TEMPLATE/bug_report.md
.github/ISSUE_TEMPLATE/feature_request.md
.github/ISSUE_TEMPLATE/quest_idea.md
.github/workflows/publish.yml
dfhack_scripts/storyteller-begin.lua
dfhack_scripts/storyteller-debug-appearance.lua
dfhack_scripts/storyteller-debug-bpmod.lua
dfhack_scripts/storyteller-debug-child-tissue.lua
dfhack_scripts/storyteller-debug-colors.lua
dfhack_scripts/storyteller-debug-demon.lua
dfhack_scripts/storyteller-debug-equipment.lua
dfhack_scripts/storyteller-debug-hair.lua
dfhack_scripts/storyteller-debug-reports.lua
dfhack_scripts/storyteller-debug-seed.lua
dfhack_scripts/storyteller-events.lua
dfhack_scripts/storyteller-snapshot.lua
docs/event-lifecycle.md
docs/event-type-catalog.md
docs/feature-inventory.md
docs/legends-data-model.md
docs/route-map.md
docs/screenshots/Chronicle.png
docs/screenshots/animals.png
docs/screenshots/character-sheet.png
docs/screenshots/combat-logs.png
docs/screenshots/comparison.png
docs/screenshots/dfhack.png
docs/screenshots/event_feed.png
docs/screenshots/fort_dashboard.png
docs/screenshots/legends_figure.png
docs/screenshots/military_dashboard.png
docs/screenshots/pins.png
docs/screenshots/visitors.png
docs/screenshots/world_map.png
experimental/beast_compositor.py
scripts/smoke_test.py
src/df_storyteller/__init__.py
src/df_storyteller/__main__.py
src/df_storyteller/cli.py
src/df_storyteller/config.py
src/df_storyteller/deploy.py
src/df_storyteller.egg-info/PKG-INFO
src/df_storyteller.egg-info/SOURCES.txt
src/df_storyteller.egg-info/dependency_links.txt
src/df_storyteller.egg-info/entry_points.txt
src/df_storyteller.egg-info/requires.txt
src/df_storyteller.egg-info/top_level.txt
src/df_storyteller/context/__init__.py
src/df_storyteller/context/character_tracker.py
src/df_storyteller/context/context_builder.py
src/df_storyteller/context/dwarven_calendar.py
src/df_storyteller/context/event_renderer.py
src/df_storyteller/context/event_store.py
src/df_storyteller/context/highlights_store.py
src/df_storyteller/context/loader.py
src/df_storyteller/context/lore_pins.py
src/df_storyteller/context/map_generator.py
src/df_storyteller/context/narrative_formatter.py
src/df_storyteller/context/notes_store.py
src/df_storyteller/context/quest_store.py
src/df_storyteller/context/world_lore.py
src/df_storyteller/dfhack_scripts/storyteller-begin.lua
src/df_storyteller/dfhack_scripts/storyteller-events.lua
src/df_storyteller/dfhack_scripts/storyteller-snapshot.lua
src/df_storyteller/ingestion/__init__.py
src/df_storyteller/ingestion/dfhack_json_parser.py
src/df_storyteller/ingestion/gamelog_parser.py
src/df_storyteller/ingestion/legends_parser.py
src/df_storyteller/llm/__init__.py
src/df_storyteller/llm/base.py
src/df_storyteller/llm/claude_provider.py
src/df_storyteller/llm/ollama_provider.py
src/df_storyteller/llm/openai_provider.py
src/df_storyteller/llm/prompt_templates.py
src/df_storyteller/output/__init__.py
src/df_storyteller/output/journal.py
src/df_storyteller/portraits/__init__.py
src/df_storyteller/portraits/compositor.py
src/df_storyteller/portraits/creature_sprites.py
src/df_storyteller/portraits/evaluator.py
src/df_storyteller/portraits/graphics_parser.py
src/df_storyteller/portraits/tile_loader.py
src/df_storyteller/schema/__init__.py
src/df_storyteller/schema/entities.py
src/df_storyteller/schema/events.py
src/df_storyteller/schema/highlights.py
src/df_storyteller/schema/notes.py
src/df_storyteller/schema/personality.py
src/df_storyteller/schema/quests.py
src/df_storyteller/schema/world.py
src/df_storyteller/stories/__init__.py
src/df_storyteller/stories/base.py
src/df_storyteller/stories/biography.py
src/df_storyteller/stories/chronicle.py
src/df_storyteller/stories/df_mechanics.py
src/df_storyteller/stories/quest_generator.py
src/df_storyteller/stories/saga.py
src/df_storyteller/web/__init__.py
src/df_storyteller/web/app.py
src/df_storyteller/web/helpers.py
src/df_storyteller/web/state.py
src/df_storyteller/web/templates_setup.py
src/df_storyteller/web/routers/__init__.py
src/df_storyteller/web/routers/chronicle.py
src/df_storyteller/web/routers/dashboard.py
src/df_storyteller/web/routers/dwarves.py
src/df_storyteller/web/routers/events.py
src/df_storyteller/web/routers/gazette.py
src/df_storyteller/web/routers/highlights.py
src/df_storyteller/web/routers/images.py
src/df_storyteller/web/routers/lore_api.py
src/df_storyteller/web/routers/lore_detail.py
src/df_storyteller/web/routers/lore_index.py
src/df_storyteller/web/routers/military.py
src/df_storyteller/web/routers/notes.py
src/df_storyteller/web/routers/portraits.py
src/df_storyteller/web/routers/quests.py
src/df_storyteller/web/routers/settings.py
src/df_storyteller/web/routers/stories.py
src/df_storyteller/web/routers/worlds.py
src/df_storyteller/web/static/css/style.css
src/df_storyteller/web/static/js/app.js
src/df_storyteller/web/templates/base.html
src/df_storyteller/web/templates/chronicle.html
src/df_storyteller/web/templates/dashboard.html
src/df_storyteller/web/templates/dwarf_detail.html
src/df_storyteller/web/templates/dwarves.html
src/df_storyteller/web/templates/events.html
src/df_storyteller/web/templates/gazette.html
src/df_storyteller/web/templates/lore.html
src/df_storyteller/web/templates/lore_artifact.html
src/df_storyteller/web/templates/lore_civ.html
src/df_storyteller/web/templates/lore_cultural_form.html
src/df_storyteller/web/templates/lore_event_collection.html
src/df_storyteller/web/templates/lore_festival.html
src/df_storyteller/web/templates/lore_figure.html
src/df_storyteller/web/templates/lore_geography.html
src/df_storyteller/web/templates/lore_map.html
src/df_storyteller/web/templates/lore_pins_panel.html
src/df_storyteller/web/templates/lore_sidebar.html
src/df_storyteller/web/templates/lore_site.html
src/df_storyteller/web/templates/lore_war.html
src/df_storyteller/web/templates/lore_written_work.html
src/df_storyteller/web/templates/military.html
src/df_storyteller/web/templates/quests.html
src/df_storyteller/web/templates/relationships.html
src/df_storyteller/web/templates/religion.html
src/df_storyteller/web/templates/settings.html
tests/__init__.py
tests/conftest.py
tests/test_context_builder.py
tests/test_dfhack_json_parser.py
tests/test_event_renderer.py
tests/test_gamelog_parser.py
tests/test_highlights_store.py
tests/test_hotlink_filter.py
tests/test_legends_parser.py
tests/test_llm_providers.py
tests/test_manual_entries.py
tests/test_route_smoke.py
tests/test_router_logic.py
tests/test_shared_infrastructure.py
tests/test_web_security.py
tests/fixtures/combat_gamelog.txt
tests/fixtures/sample_dfhack_event.json
tests/fixtures/sample_gamelog.txt
tests/fixtures/sample_legends.xml