LICENSE
README.md
VERSION
pyproject.toml
yaffo/__init__.py
yaffo/__main__.py
yaffo/app.py
yaffo/common.py
yaffo/config.py
yaffo/distance_units.py
yaffo/download_assets.py
yaffo/i18n.py
yaffo/launcher.py
yaffo/logging_config.py
yaffo/setup.py
yaffo/shortcuts.py
yaffo/template_filters.py
yaffo/themes.py
yaffo/version.py
yaffo.egg-info/PKG-INFO
yaffo.egg-info/SOURCES.txt
yaffo.egg-info/dependency_links.txt
yaffo.egg-info/entry_points.txt
yaffo.egg-info/requires.txt
yaffo.egg-info/top_level.txt
yaffo/background_tasks/__init__.py
yaffo/background_tasks/automation_config.py
yaffo/background_tasks/automation_dispatch.py
yaffo/background_tasks/automation_runs.py
yaffo/background_tasks/config.py
yaffo/background_tasks/events.py
yaffo/background_tasks/periodic.py
yaffo/background_tasks/progress_reporter.py
yaffo/background_tasks/registry.py
yaffo/background_tasks/schedule.py
yaffo/background_tasks/utils.py
yaffo/background_tasks/watcher.py
yaffo/background_tasks/watcher_suppression.py
yaffo/background_tasks/automation_sandbox/__init__.py
yaffo/background_tasks/automation_sandbox/automation_actions.py
yaffo/background_tasks/automation_sandbox/automation_compare.py
yaffo/background_tasks/automation_sandbox/automation_host.py
yaffo/background_tasks/automation_sandbox/executor.py
yaffo/background_tasks/automation_sandbox/labels.py
yaffo/background_tasks/automation_sandbox/media_dirs.py
yaffo/background_tasks/automation_sandbox/preview.py
yaffo/background_tasks/automation_sandbox/starlark_runner.py
yaffo/background_tasks/tasks/__init__.py
yaffo/background_tasks/tasks/assign_faces_to_person.py
yaffo/background_tasks/tasks/assign_location_name_automation.py
yaffo/background_tasks/tasks/auto_assign_faces_automation.py
yaffo/background_tasks/tasks/classify_labels_automation.py
yaffo/background_tasks/tasks/complete_job.py
yaffo/background_tasks/tasks/dispatch_event.py
yaffo/background_tasks/tasks/dispatcher.py
yaffo/background_tasks/tasks/duplicate_scan.py
yaffo/background_tasks/tasks/export_photo_tag.py
yaffo/background_tasks/tasks/file_sync.py
yaffo/background_tasks/tasks/find_duplicates.py
yaffo/background_tasks/tasks/generate_automation.py
yaffo/background_tasks/tasks/generate_page.py
yaffo/background_tasks/tasks/generate_theme.py
yaffo/background_tasks/tasks/geotag_from_neighbors_automation.py
yaffo/background_tasks/tasks/import_photo.py
yaffo/background_tasks/tasks/index_photo.py
yaffo/background_tasks/tasks/index_stage.py
yaffo/background_tasks/tasks/remove_duplicates.py
yaffo/background_tasks/tasks/run_automation.py
yaffo/db/__init__.py
yaffo/db/models.py
yaffo/db/repositories/automation_repository.py
yaffo/db/repositories/classification_repository.py
yaffo/db/repositories/custom_page_repository.py
yaffo/db/repositories/data_query_repository.py
yaffo/db/repositories/media_dir_repository.py
yaffo/db/repositories/media_repository.py
yaffo/db/repositories/person_repository.py
yaffo/domain/compare_utils.py
yaffo/domain/life_stages.py
yaffo/resources/branding/menubar.png
yaffo/routes/__init__.py
yaffo/routes/base.py
yaffo/routes/faces.py
yaffo/routes/filter_config.py
yaffo/routes/home.py
yaffo/routes/init_routes.py
yaffo/routes/jobs.py
yaffo/routes/locations.py
yaffo/routes/media.py
yaffo/routes/pages.py
yaffo/routes/people.py
yaffo/routes/settings.py
yaffo/routes/themes_page.py
yaffo/routes/utilities/__init__.py
yaffo/routes/utilities/automations.py
yaffo/routes/utilities/base.py
yaffo/routes/utilities/common.py
yaffo/routes/utilities/index_photos.py
yaffo/routes/utilities/remove_duplicates.py
yaffo/scripts/__init__.py
yaffo/scripts/db/__init__.py
yaffo/scripts/db/migrate.py
yaffo/scripts/db/migrations/000_MIGRATION_20260620_INIT.py
yaffo/scripts/db/migrations/001_MIGRATION_20260622_rename_photos_to_media_items.py
yaffo/scripts/db/migrations/002_MIGRATION_20260622_rename_events_to_media.py
yaffo/scripts/db/migrations/003_MIGRATION_20260622_add_video_columns.py
yaffo/scripts/db/migrations/004_MIGRATION_20260624_add_person_gender.py
yaffo/scripts/db/migrations/005_MIGRATION_20260626_normalize_assign_location_radius_config.py
yaffo/scripts/db/migrations/__init__.py
yaffo/site_agents/__init__.py
yaffo/site_agents/agent.py
yaffo/site_agents/llm_config.py
yaffo/site_agents/schemas.py
yaffo/site_agents/serializers.py
yaffo/site_agents/widget_api.py
yaffo/site_agents/widget_templates.py
yaffo/site_agents/widget_theme.py
yaffo/site_agents/model_clients/__init__.py
yaffo/site_agents/model_clients/call_log.py
yaffo/site_agents/model_clients/factory.py
yaffo/site_agents/model_clients/model_client.py
yaffo/site_agents/model_clients/model_client_types.py
yaffo/site_agents/model_clients/openai_client.py
yaffo/site_agents/model_clients/providers.py
yaffo/site_agents/prompt_generator/__init__.py
yaffo/site_agents/prompt_generator/automation_system_prompt.py
yaffo/site_agents/prompt_generator/automation_user_prompt.py
yaffo/site_agents/prompt_generator/response_language.py
yaffo/site_agents/prompt_generator/source_catalog.py
yaffo/site_agents/prompt_generator/system_prompt.py
yaffo/site_agents/prompt_generator/theme_system_prompt.py
yaffo/site_agents/prompt_generator/theme_user_prompt.py
yaffo/site_agents/prompt_generator/user_prompt.py
yaffo/site_agents/prompt_generator/xml_helpers.py
yaffo/site_agents/tool_providers/__init__.py
yaffo/site_agents/tool_providers/automation_tool.py
yaffo/site_agents/tool_providers/automation_trigger_tool.py
yaffo/site_agents/tool_providers/data_query_tool.py
yaffo/site_agents/tool_providers/theme_catalog_tool.py
yaffo/site_agents/tool_providers/theme_tool.py
yaffo/site_agents/tool_providers/tool_provider_types.py
yaffo/site_agents/tool_providers/utils.py
yaffo/site_agents/tool_providers/widget_template_tool.py
yaffo/site_agents/tool_providers/widget_tool.py
yaffo/static/action-links.css
yaffo/static/base.css
yaffo/static/button.css
yaffo/static/empty-state.css
yaffo/static/error.css
yaffo/static/form.css
yaffo/static/i18n.js
yaffo/static/index.css
yaffo/static/logo.svg
yaffo/static/match-type.css
yaffo/static/multi-select.css
yaffo/static/multi-select.js
yaffo/static/nav.js
yaffo/static/notification.css
yaffo/static/notification.js
yaffo/static/searchable-select.css
yaffo/static/searchable-select.js
yaffo/static/sidebar.css
yaffo/static/table.css
yaffo/static/tokens.css
yaffo/static/utils.js
yaffo/static/video_placeholder.svg
yaffo/static/yaffo_logo.png
yaffo/static/components/chat_dialog.css
yaffo/static/components/chat_dialog.js
yaffo/static/components/collapsible_panel.css
yaffo/static/components/collapsible_panel.js
yaffo/static/components/confirm-dialog.js
yaffo/static/components/cron_builder.css
yaffo/static/components/cron_builder.js
yaffo/static/components/distance_input.css
yaffo/static/components/favorite-toggle.css
yaffo/static/components/file_browser.css
yaffo/static/components/file_browser.js
yaffo/static/components/folder_picker.js
yaffo/static/components/icons.css
yaffo/static/components/intl_date_input.css
yaffo/static/components/intl_date_input.js
yaffo/static/components/job_progress.css
yaffo/static/components/kbd.css
yaffo/static/components/modal.css
yaffo/static/components/modal.js
yaffo/static/components/overlay.css
yaffo/static/components/overlay.js
yaffo/static/components/pagination.css
yaffo/static/components/panel_nav.css
yaffo/static/components/percentage_slider.css
yaffo/static/components/percentage_slider.js
yaffo/static/components/scrollbar.css
yaffo/static/components/tooltip.css
yaffo/static/faces/index.css
yaffo/static/faces/index.js
yaffo/static/filters/_similarity.css
yaffo/static/filters/filter_config.css
yaffo/static/filters/filter_config.js
yaffo/static/filters/location-autocomplete.css
yaffo/static/filters/location-autocomplete.js
yaffo/static/filters/tags.js
yaffo/static/locales/ar.json
yaffo/static/locales/de.json
yaffo/static/locales/en.json
yaffo/static/locales/es.json
yaffo/static/locales/fr.json
yaffo/static/locales/hi.json
yaffo/static/locales/zh.json
yaffo/static/locations/list.css
yaffo/static/locations/list.js
yaffo/static/media/face-reassign.js
yaffo/static/media/favorite.js
yaffo/static/media/gallery_video.js
yaffo/static/media/tags.js
yaffo/static/media/view.css
yaffo/static/media/view.js
yaffo/static/pages/detail.css
yaffo/static/pages/detail.js
yaffo/static/pages/grid.js
yaffo/static/pages/nav.css
yaffo/static/pages/widget_api.js
yaffo/static/pages/widget_broker.js
yaffo/static/people/faces.css
yaffo/static/people/faces.js
yaffo/static/people/list.css
yaffo/static/people/list.js
yaffo/static/settings/index.css
yaffo/static/settings/index.js
yaffo/static/settings/labels.js
yaffo/static/themes/classic.css
yaffo/static/themes/darkroom.css
yaffo/static/themes/memphis.css
yaffo/static/themes/neobrutalist.css
yaffo/static/themes/photos-app.css
yaffo/static/themes/scrapbook.css
yaffo/static/themes/classic/favicon.svg
yaffo/static/themes/classic/icon-add.svg
yaffo/static/themes/classic/icon-arrow-up.svg
yaffo/static/themes/classic/icon-delete.svg
yaffo/static/themes/classic/icon-edit.svg
yaffo/static/themes/classic/icon-faces.svg
yaffo/static/themes/classic/icon-file.svg
yaffo/static/themes/classic/icon-folder.svg
yaffo/static/themes/classic/icon-heart-filled.svg
yaffo/static/themes/classic/icon-heart.svg
yaffo/static/themes/classic/icon-info.svg
yaffo/static/themes/classic/icon-library.svg
yaffo/static/themes/classic/icon-locations.svg
yaffo/static/themes/classic/icon-people.svg
yaffo/static/themes/classic/icon-search.svg
yaffo/static/themes/classic/icon-settings.svg
yaffo/static/themes/classic/icon-shuffle.svg
yaffo/static/themes/classic/icon-skip.svg
yaffo/static/themes/classic/icon-sync.svg
yaffo/static/themes/classic/icon-themes.svg
yaffo/static/themes/classic/icon-utilities.svg
yaffo/static/themes/classic/icon-warning.svg
yaffo/static/themes/classic/placeholder.svg
yaffo/static/themes/darkroom/favicon.svg
yaffo/static/themes/darkroom/placeholder.svg
yaffo/static/themes/darkroom/tokens.css
yaffo/static/themes/memphis/favicon.svg
yaffo/static/themes/memphis/placeholder.svg
yaffo/static/themes/memphis/tokens.css
yaffo/static/themes/neobrutalist/favicon.svg
yaffo/static/themes/neobrutalist/placeholder.svg
yaffo/static/themes/neobrutalist/tokens.css
yaffo/static/themes/photos-app/favicon.svg
yaffo/static/themes/photos-app/placeholder.svg
yaffo/static/themes/photos-app/tokens.css
yaffo/static/themes/scrapbook/favicon.svg
yaffo/static/themes/scrapbook/placeholder.svg
yaffo/static/themes/scrapbook/scissors.svg
yaffo/static/themes/scrapbook/tokens.css
yaffo/static/themes_page/index.css
yaffo/static/themes_page/index.js
yaffo/static/utilities/_base.css
yaffo/static/utilities/_base.js
yaffo/static/utilities/automations.css
yaffo/static/utilities/automations.js
yaffo/static/utilities/index_photos.js
yaffo/static/utilities/remove_duplicate_results.css
yaffo/static/utilities/remove_duplicates.js
yaffo/static/vendor/manifest.json
yaffo/static/vendor/gridstack/10.3.1/gridstack-all.js
yaffo/static/vendor/gridstack/10.3.1/gridstack.min.css
yaffo/static/vendor/htmx/2.0.4/htmx.min.js
yaffo/static/vendor/i18next/25.7.4/i18next.min.js
yaffo/static/vendor/ol/10.3.1/ol.css
yaffo/static/vendor/ol/10.3.1/ol.js
yaffo/taskq/__init__.py
yaffo/taskq/core.py
yaffo/taskq/cron.py
yaffo/taskq/host.py
yaffo/taskq/signatures.py
yaffo/taskq/store.py
yaffo/taskq/worker.py
yaffo/templates/404.html
yaffo/templates/500.html
yaffo/templates/_sidebar.html
yaffo/templates/base.html
yaffo/templates/index.html
yaffo/templates/components/chat_dialog.html
yaffo/templates/components/collapsible_panel.html
yaffo/templates/components/distance_input.html
yaffo/templates/components/error_screen.html
yaffo/templates/components/file_browser.html
yaffo/templates/components/htmx_pagination.html
yaffo/templates/components/info_modal.html
yaffo/templates/components/intl_date_input.html
yaffo/templates/components/job_section.html
yaffo/templates/components/job_status.html
yaffo/templates/components/modal.html
yaffo/templates/components/page_header.html
yaffo/templates/components/pagination.html
yaffo/templates/components/percentage_slider.html
yaffo/templates/faces/index.html
yaffo/templates/filters/_device.html
yaffo/templates/filters/_favorite.html
yaffo/templates/filters/_gender.html
yaffo/templates/filters/_labels.html
yaffo/templates/filters/_locations.html
yaffo/templates/filters/_matchType.html
yaffo/templates/filters/_media_type.html
yaffo/templates/filters/_month.html
yaffo/templates/filters/_pageSize.html
yaffo/templates/filters/_path.html
yaffo/templates/filters/_people.html
yaffo/templates/filters/_person.html
yaffo/templates/filters/_similarity.html
yaffo/templates/filters/_tags.html
yaffo/templates/filters/_year.html
yaffo/templates/fragments/job_section_fragment.html
yaffo/templates/fragments/job_status_fragment.html
yaffo/templates/locations/list.html
yaffo/templates/media/view.html
yaffo/templates/pages/_grid.html
yaffo/templates/pages/_widget.html
yaffo/templates/pages/design.html
yaffo/templates/pages/presentation.html
yaffo/templates/pages/widget_frame.html
yaffo/templates/people/faces.html
yaffo/templates/people/list.html
yaffo/templates/settings/_labels.html
yaffo/templates/settings/_llm.html
yaffo/templates/settings/_llm_api_key.html
yaffo/templates/settings/index.html
yaffo/templates/themes_page/index.html
yaffo/templates/utilities/_base.html
yaffo/templates/utilities/automations.html
yaffo/templates/utilities/automations_edit.html
yaffo/templates/utilities/automations_runs.html
yaffo/templates/utilities/automations_triggers.html
yaffo/templates/utilities/automations_triggers_edit.html
yaffo/templates/utilities/index_photos.html
yaffo/templates/utilities/remove_duplicates.html
yaffo/templates/utilities/remove_duplicates_form.html
yaffo/templates/utilities/remove_duplicates_photo_card.html
yaffo/templates/utilities/remove_duplicates_results.html
yaffo/templates/utilities/remove_duplicates_results_form.html
yaffo/templates/utilities/remove_duplicates_results_form_header.html
yaffo/translations/ar/LC_MESSAGES/messages.mo
yaffo/translations/ar/LC_MESSAGES/messages.po
yaffo/translations/de/LC_MESSAGES/messages.mo
yaffo/translations/de/LC_MESSAGES/messages.po
yaffo/translations/es/LC_MESSAGES/messages.mo
yaffo/translations/es/LC_MESSAGES/messages.po
yaffo/translations/fr/LC_MESSAGES/messages.mo
yaffo/translations/fr/LC_MESSAGES/messages.po
yaffo/translations/hi/LC_MESSAGES/messages.mo
yaffo/translations/hi/LC_MESSAGES/messages.po
yaffo/translations/zh/LC_MESSAGES/messages.mo
yaffo/translations/zh/LC_MESSAGES/messages.po
yaffo/utils/__init__.py
yaffo/utils/context.py
yaffo/utils/exiftool_path.py
yaffo/utils/face_analysis.py
yaffo/utils/ffmpeg_path.py
yaffo/utils/file_sync.py
yaffo/utils/file_system.py
yaffo/utils/geo.py
yaffo/utils/image.py
yaffo/utils/image_classifier.py
yaffo/utils/index_jobs.py
yaffo/utils/index_jobs_dto.py
yaffo/utils/index_photos.py
yaffo/utils/index_video.py
yaffo/utils/photo_dates.py
yaffo/utils/platform_checks.py
yaffo/utils/request_helpers.py
yaffo/utils/reverse_geocode.py
yaffo/utils/settings.py
yaffo/utils/time.py
yaffo/utils/write_metadata.py
yaffo/utils/clip_tokenizer/__init__.py
yaffo/utils/clip_tokenizer/tokenizer.py