Add self-hosted plan artifact targets
loading diff…
Adds self-hosted plan artifact targets to the Rube plan ingestion pipeline.
The managed plan path remains the source of truth: ingestion still writes Voyage embeddings to the primary TurboPuffer namespace. When ENABLE_SELF_HOSTED_PLAN_ARTIFACTS=1 is set, each run reconciles provider-specific artifact namespaces from that managed namespace. OpenAI is the only implemented artifact embedding provider in this PR.
EmbeddingProvider abstractions for Voyage and OpenAI embeddings.VectorStoreWriter abstraction with a TurboPuffer implementation.SELF_HOSTED_PLAN_EMBEDDING_PROVIDERS.{managed_namespace}_openai, with SELF_HOSTED_PLAN_TP_NAMESPACE_OPENAI override support.SELF_HOSTED_PLAN_ARTIFACTS.md with the pipeline understanding, config, extension process, and current scope.MERCURY_PATH=/Users/wjayesh/apps/mercury ZAPIER_PATH=/tmp OPENAI_API_KEY=test PYTHONPATH=/Users/wjayesh/apps/mercury:/Users/wjayesh/apps/integrator-plan-artifacts /Users/wjayesh/apps/integrator/.venv/bin/pytest app_tester/rube_learning/ingestion_pipeline/tests/test_plan_artifact_targets.py -q/Users/wjayesh/apps/integrator/.venv/bin/ruff check app_tester/rube_learning/ingestion_pipeline/embedding_providers.py app_tester/rube_learning/ingestion_pipeline/vector_store_writers.py app_tester/rube_learning/ingestion_pipeline/turbopuffer_ingestion.py app_tester/rube_learning/ingestion_pipeline/tests/test_plan_artifact_targets.py/Users/wjayesh/apps/integrator/.venv/bin/python -m compileall app_tester/rube_learning/ingestion_pipeline/embedding_providers.py app_tester/rube_learning/ingestion_pipeline/vector_store_writers.py app_tester/rube_learning/ingestion_pipeline/turbopuffer_ingestion.py app_tester/rube_learning/ingestion_pipeline/tests/test_plan_artifact_targets.pygit diff --check