.gitignore
CHANGELOG.md
CONTRIBUTING.md
LICENSE
README.md
pyproject.toml
.github/workflows/publish.yml
docs/chat-workflows.md
docs/release-workflow.md
docs/runtime-inspection.md
docs/validation-workflow.md
docs/api-reference/ollama-api.md
docs/api-reference/pyqt5-patterns.md
docs/api-reference/spyder-plugin-api.md
docs/screenshots/chat-panel.png
docs/screenshots/ghost-completions.png
src/spyder_ai_assistant/__init__.py
src/spyder_ai_assistant/completion_provider.py
src/spyder_ai_assistant/plugin.py
src/spyder_ai_assistant.egg-info/PKG-INFO
src/spyder_ai_assistant.egg-info/SOURCES.txt
src/spyder_ai_assistant.egg-info/dependency_links.txt
src/spyder_ai_assistant.egg-info/entry_points.txt
src/spyder_ai_assistant.egg-info/requires.txt
src/spyder_ai_assistant.egg-info/top_level.txt
src/spyder_ai_assistant/backend/__init__.py
src/spyder_ai_assistant/backend/chat_providers.py
src/spyder_ai_assistant/backend/client.py
src/spyder_ai_assistant/backend/worker.py
src/spyder_ai_assistant/utils/__init__.py
src/spyder_ai_assistant/utils/chat_exchanges.py
src/spyder_ai_assistant/utils/chat_inference.py
src/spyder_ai_assistant/utils/chat_persistence.py
src/spyder_ai_assistant/utils/chat_workflows.py
src/spyder_ai_assistant/utils/code_apply.py
src/spyder_ai_assistant/utils/completion_context.py
src/spyder_ai_assistant/utils/context.py
src/spyder_ai_assistant/utils/prompt_library.py
src/spyder_ai_assistant/utils/provider_profiles.py
src/spyder_ai_assistant/utils/runtime_bridge.py
src/spyder_ai_assistant/utils/runtime_context.py
src/spyder_ai_assistant/widgets/__init__.py
src/spyder_ai_assistant/widgets/chat_display.py
src/spyder_ai_assistant/widgets/chat_input.py
src/spyder_ai_assistant/widgets/chat_settings_dialog.py
src/spyder_ai_assistant/widgets/chat_widget.py
src/spyder_ai_assistant/widgets/code_apply_dialog.py
src/spyder_ai_assistant/widgets/config_page.py
src/spyder_ai_assistant/widgets/exchange_delete_dialog.py
src/spyder_ai_assistant/widgets/ghost_text.py
src/spyder_ai_assistant/widgets/provider_profiles_dialog.py
src/spyder_ai_assistant/widgets/session_history_dialog.py
src/spyder_ai_assistant/widgets/status.py
tests/conftest.py
tests/test_chat_exchanges.py
tests/test_chat_inference.py
tests/test_chat_persistence.py
tests/test_chat_providers.py
tests/test_chat_worker.py
tests/test_chat_workflows.py
tests/test_code_apply.py
tests/test_completion_context.py
tests/test_completion_provider.py
tests/test_ghost_text.py
tests/test_prompt_library.py
tests/test_provider_profiles.py
tests/test_runtime_bridge.py
tests/test_runtime_context.py
tools/__init__.py
tools/release/__init__.py
tools/release/build_dist.py
tools/spyder_validation/__init__.py
tools/spyder_validation/common.py
tools/spyder_validation/run_chat_exchange_deletion_restore_validation.py
tools/spyder_validation/run_chat_exchange_deletion_validation.py
tools/spyder_validation/run_chat_history_browser_restore_validation.py
tools/spyder_validation/run_chat_history_browser_validation.py
tools/spyder_validation/run_chat_inference_controls_restore_validation.py
tools/spyder_validation/run_chat_inference_controls_validation.py
tools/spyder_validation/run_chat_persistence_setup.py
tools/spyder_validation/run_chat_persistence_verify.py
tools/spyder_validation/run_chat_prompt_preset_restore_validation.py
tools/spyder_validation/run_chat_prompt_preset_validation.py
tools/spyder_validation/run_chat_provider_validation.py
tools/spyder_validation/run_chat_use_console_smoke.py
tools/spyder_validation/run_chat_workflow_validation.py
tools/spyder_validation/run_completion_validation.py
tools/spyder_validation/run_phase10_runtime_validation.py
tools/spyder_validation/run_phase11_apply_preview_validation.py
tools/spyder_validation/run_phase12_provider_profiles_validation.py
tools/spyder_validation/run_phase13_history_discovery_validation.py