README.md
pyproject.toml
src/praxicraft_shared/__init__.py
src/praxicraft_shared/ai_service.py
src/praxicraft_shared/auth_client.py
src/praxicraft_shared/billing_client.py
src/praxicraft_shared/error_envelope.py
src/praxicraft_shared/hibp.py
src/praxicraft_shared/jwt_utils.py
src/praxicraft_shared/notifications_client.py
src/praxicraft_shared/org_client.py
src/praxicraft_shared/s3_client.py
src/praxicraft_shared/secret_crypto.py
src/praxicraft_shared/service_token.py
src/praxicraft_shared/work_email.py
src/praxicraft_shared.egg-info/PKG-INFO
src/praxicraft_shared.egg-info/SOURCES.txt
src/praxicraft_shared.egg-info/dependency_links.txt
src/praxicraft_shared.egg-info/requires.txt
src/praxicraft_shared.egg-info/top_level.txt
src/praxicraft_shared/email/2fa-disabled.html
src/praxicraft_shared/email/2fa-enabled.html
src/praxicraft_shared/email/__init__.py
src/praxicraft_shared/email/account-deletion-code.html
src/praxicraft_shared/email/account-locked.html
src/praxicraft_shared/email/account_locked.html
src/praxicraft_shared/email/admin_invitation.html
src/praxicraft_shared/email/admin_login_notify_internal.html
src/praxicraft_shared/email/admin_staff_granted.html
src/praxicraft_shared/email/anniversary.html
src/praxicraft_shared/email/api_key_expiring_soon.html
src/praxicraft_shared/email/api_key_reveal_code.html
src/praxicraft_shared/email/assess_application_advanced.html
src/praxicraft_shared/email/assess_application_received.html
src/praxicraft_shared/email/assess_application_rejection.html
src/praxicraft_shared/email/assess_completed_candidate.html
src/praxicraft_shared/email/assess_custom_body.html
src/praxicraft_shared/email/assess_interview_invite.html
src/praxicraft_shared/email/assess_invitation.html
src/praxicraft_shared/email/assess_needs_grading.html
src/praxicraft_shared/email/assess_offer_reminder.html
src/praxicraft_shared/email/assess_offer_sent.html
src/praxicraft_shared/email/assess_offer_withdrawn.html
src/praxicraft_shared/email/assess_org_welcome.html
src/praxicraft_shared/email/assess_reminder.html
src/praxicraft_shared/email/assess_results_ready.html
src/praxicraft_shared/email/assess_stage_update.html
src/praxicraft_shared/email/base.html
src/praxicraft_shared/email/base.txt
src/praxicraft_shared/email/beta_engineer_invitation.html
src/praxicraft_shared/email/beta_organisation_invitation.html
src/praxicraft_shared/email/billing_cancel_scheduled.html
src/praxicraft_shared/email/billing_payment_failed.html
src/praxicraft_shared/email/billing_payment_notify_internal.html
src/praxicraft_shared/email/billing_payment_succeeded.html
src/praxicraft_shared/email/billing_plan_changed.html
src/praxicraft_shared/email/billing_refund_completed.html
src/praxicraft_shared/email/billing_refund_initiated.html
src/praxicraft_shared/email/billing_renewal_reminder.html
src/praxicraft_shared/email/billing_subscription_ended.html
src/praxicraft_shared/email/billing_subscription_resumed.html
src/praxicraft_shared/email/billing_subscription_started.html
src/praxicraft_shared/email/contract.html
src/praxicraft_shared/email/dm_digest.html
src/praxicraft_shared/email/email_verified.html
src/praxicraft_shared/email/email_verify_code.html
src/praxicraft_shared/email/employment_confirmation.html
src/praxicraft_shared/email/feedback-request.html
src/praxicraft_shared/email/feedback-thanks.html
src/praxicraft_shared/email/inactivity.html
src/praxicraft_shared/email/interview_cancellation.html
src/praxicraft_shared/email/interview_cancellation.txt
src/praxicraft_shared/email/interview_invitation.html
src/praxicraft_shared/email/interview_invitation.txt
src/praxicraft_shared/email/interview_no_show_recruiter.html
src/praxicraft_shared/email/interview_no_show_recruiter.txt
src/praxicraft_shared/email/interview_reminder.html
src/praxicraft_shared/email/interview_reminder.txt
src/praxicraft_shared/email/interview_report_ready.html
src/praxicraft_shared/email/interview_report_ready.txt
src/praxicraft_shared/email/interview_reschedule.html
src/praxicraft_shared/email/interview_reschedule.txt
src/praxicraft_shared/email/member_joined_notification.html
src/praxicraft_shared/email/mentorship_declined.html
src/praxicraft_shared/email/mentorship_expired.html
src/praxicraft_shared/email/mentorship_matched.html
src/praxicraft_shared/email/oauth_hint.html
src/praxicraft_shared/email/onboarding_incomplete.html
src/praxicraft_shared/email/org_deletion_verification.html
src/praxicraft_shared/email/organisation_invitation.html
src/praxicraft_shared/email/pair_invite.html
src/praxicraft_shared/email/password-changed.html
src/praxicraft_shared/email/password_changed.html
src/praxicraft_shared/email/password_reset.html
src/praxicraft_shared/email/payslip.html
src/praxicraft_shared/email/promotion.html
src/praxicraft_shared/email/reengagement.html
src/praxicraft_shared/email/reset-password.html
src/praxicraft_shared/email/security_alert.html
src/praxicraft_shared/email/sprint_completed.html
src/praxicraft_shared/email/step-up-code.html
src/praxicraft_shared/email/support_inactivity_warning.html
src/praxicraft_shared/email/support_reply.html
src/praxicraft_shared/email/support_status_update.html
src/praxicraft_shared/email/suspicious-login.html
src/praxicraft_shared/email/suspicious_login.html
src/praxicraft_shared/email/team_invite.html
src/praxicraft_shared/email/team_join_request.html
src/praxicraft_shared/email/track_launch.html
src/praxicraft_shared/email/verify-email.html
src/praxicraft_shared/email/waitlist-confirmation.html
src/praxicraft_shared/email/waitlist-launch.html
src/praxicraft_shared/email/webhook_endpoint_unreachable.html
src/praxicraft_shared/email/weekly_digest.html
src/praxicraft_shared/email/welcome.html
src/praxicraft_shared/email/welcome_account.html
src/praxicraft_shared/email/welcome_hr.html
src/praxicraft_shared/email/welcome_self_paced.html
src/praxicraft_shared/email/year_wrap.html
src/praxicraft_shared/email/partials/_cta.html
src/praxicraft_shared/email/partials/_detail_row.html
src/praxicraft_shared/email/partials/_footer_banner.html
src/praxicraft_shared/email/partials/_hero.html
src/praxicraft_shared/email/partials/_settings_prefs_note.html
src/praxicraft_shared/email/partials/_stat_tile.html
src/praxicraft_shared/events/SCHEMA.md
src/praxicraft_shared/events/__init__.py
tests/test_ai_service.py
tests/test_billing_client.py
tests/test_notifications_service_token.py
tests/test_s1.py
tests/test_s2_jwt_email.py
tests/test_s3_auth_client.py
tests/test_s3_client.py
tests/test_s4_org_client.py