.flake8
.gitignore
.mcp.json
AGENTS.md
BUILD.md
CONTRIBUTING.md
LICENSE
MANIFEST.in
README.md
llms.txt
pyproject.toml
requirements.txt
docs/README.md
docs/capability-drift/2026-06-15-sdk-capability-drift.md
docs/capability-drift/2026-06-22-sdk-capability-drift.md
docs/development/README.md
docs/development/agent-surface.md
docs/development/data-contracts.md
docs/development/gcf.md
docs/development/generation.md
docs/development/mcp.md
docs/development/odpc-catalog.md
docs/development/odpg-graph.md
docs/development/odps-validation.md
docs/development/portfolio.md
docs/development/sdk-architecture.md
docs/development/toon.md
docs/planning/odpr-agent-runtime-structures.md
docs/planning/odpr-recipe-catalog-grouping-spec-update.md
docs/planning/odpr-scripts-sdk-port-plan.md
docs/planning/odpr-v1-sdk-workflow-required-changes.md
docs/planning/odpr_recipe_quick_starts_plan_final.md
docs/planning/online-llm-generation-story.md
docs/planning/portfolio-workflow-plan.md
docs/planning/refactor-maintainability.md
docs/planning/sdk-workflow-profiles-plan.md
docs/planning/sdk-workflow-recipes-gui-plan.md
docs/planning/tooling-development-model.md
docs/recipes/agent-usage.md
docs/recipes/catalog.md
docs/recipes/examples.md
docs/recipes/quick-start.md
docs/reports/functional-test-report.md
docs/reports/capability-drift/2026-05-23-sdk-capability-drift.md
docs/reports/capability-drift/2026-05-24-sdk-capability-drift.md
docs/reports/capability-drift/2026-05-25-sdk-capability-drift.md
docs/reports/capability-drift/2026-05-26-sdk-capability-drift.md
docs/reports/capability-drift/2026-06-01-sdk-capability-drift.md
docs/reports/capability-drift/2026-06-08-sdk-capability-drift.md
docs/reports/capability-drift/README.md
docs/user/API.md
docs/user/agent-surface.md
docs/user/commands.md
docs/user/data-contracts.md
docs/user/generation.md
docs/user/llama-cpp.md
docs/user/llm-selection-guide.md
docs/user/nvidia-nim.md
docs/user/provider-model-matrix.md
docs/user/recipe-workflows.md
docs/user/zai-glm.md
examples/advanced_features.py
examples/basic_usage.py
examples/comprehensive_example.py
examples/contract.yaml
examples/demo_product.json
examples/demo_product.yaml
examples/graph.graphml
examples/odpc_catalog.html
examples/odpc_catalog.yaml
examples/odps_v41_example.py
examples/product.yaml
examples/apps/README.md
examples/apps/document_inspector/cli.py
examples/apps/pricing_402_builder/cli.py
examples/apps/pricing_402_builder/priced_product.yaml
examples/apps/vocabulary_finder/cli.py
examples/guides/README.md
examples/guides/00-setup-python/README.md
examples/guides/06-what-the-sdk-is/README.md
examples/guides/07-installing-and-running-sdk/README.md
examples/guides/08-validating-and-explaining-standards-files/README.md
examples/guides/08-validating-and-explaining-standards-files/invalid-product.yaml
examples/guides/08-validating-and-explaining-standards-files/product.yaml
examples/guides/09-use-odpv-vocabulary-helpers/README.md
examples/guides/10-working-with-local-llms/README.md
examples/guides/10-working-with-local-llms/generation.config.yaml
examples/guides/11-working-with-online-llm-providers/README.md
examples/guides/11-working-with-online-llm-providers/generation.config.yaml
examples/guides/11-working-with-online-llm-providers/source_docs/passenger-flow-product.md
examples/guides/12-generating-odps-data-products/README.md
examples/guides/12-generating-odps-data-products/source_docs/partner-api-product-brief.md
examples/guides/12-generating-odps-data-products/source_docs/support-operations-email-thread.md
examples/guides/13-working-with-generation-and-fragments/README.md
examples/guides/13-working-with-generation-and-fragments/source_docs/products/customer-analytics-product.md
examples/guides/13-working-with-generation-and-fragments/source_docs/use-cases/customer-retention-use-case.md
examples/guides/14-working-with-odpg-graphs/README.md
examples/guides/14-working-with-odpg-graphs/fragments/business_objective_reduce_churn.yaml
examples/guides/14-working-with-odpg-graphs/fragments/product_reference_customer_health_signals.yaml
examples/guides/14-working-with-odpg-graphs/fragments/signal_churn_demand.yaml
examples/guides/14-working-with-odpg-graphs/fragments/use_case_retention_risk_workflow.yaml
examples/guides/15-working-with-odpc-catalogs/README.md
examples/guides/15-working-with-odpc-catalogs/fragments/business_objective_reduce_churn.yaml
examples/guides/15-working-with-odpc-catalogs/fragments/product_reference_customer_health_signals.yaml
examples/guides/15-working-with-odpc-catalogs/fragments/signal_churn_demand.yaml
examples/guides/15-working-with-odpc-catalogs/fragments/use_case_retention_risk_workflow.yaml
examples/guides/16-from-commands-to-portfolio-builder/README.md
examples/guides/17-what-the-portfolio-builder-creates/README.md
examples/guides/18-build-first-portfolio-in-colab/README.md
examples/guides/18-build-first-portfolio-in-colab/source_docs/objectives/reduce-churn-objective.md
examples/guides/18-build-first-portfolio-in-colab/source_docs/products/customer-health-product.md
examples/guides/18-build-first-portfolio-in-colab/source_docs/use-cases/retention-risk-workflow.md
examples/guides/19-update-portfolio-and-review-version-history/README.md
examples/guides/20-how-to-localize-portfolio/README.md
examples/guides/21-final-review-human-view-and-agent-ready-yaml/README.md
examples/guides/22-why-recipes-and-what-they-run/README.md
examples/guides/23-validate-list-and-dry-run-recipes/README.md
examples/guides/24-recipe-config-and-execution-policy/README.md
examples/guides/25-run-deterministic-recipes/README.md
examples/guides/26-run-llm-backed-recipes/README.md
examples/guides/27-portfolio-recipes-end-to-end/README.md
examples/guides/28-recipes-for-agents-and-ci/README.md
examples/odpc_catalog_fragments/catalog_metadata.yaml
examples/odpc_catalog_fragments/customer_product.yaml
examples/odpc_catalog_fragments/customer_retention_use_case.yaml
examples/portfolio/mockup/index.html
examples/portfolio/sources/README.md
examples/portfolio/sources/objectives/revenue-retention-objectives.md
examples/portfolio/sources/products/customer-health-product-discussion.md
examples/portfolio/sources/products/partner-performance-brief.md
examples/portfolio/sources/signals/regional.md
examples/portfolio/sources/use-cases/partner-expansion-planning.md
examples/portfolio/sources/use-cases/retention-risk-workflow.md
examples/recipes/README.md
examples/recipes/config/generation.config.yaml
examples/recipes/config/recipes.config.yaml
examples/recipes/graph-fragments/product-reference.yaml
examples/recipes/graph-fragments/use-case.yaml
examples/recipes/source-lanes/objectives/customer-retention.md
examples/recipes/source-lanes/products/customer-product.md
examples/recipes/source-lanes/signals/usage-drop.md
examples/recipes/source-lanes/use-cases/renewal-review.md
examples/recipes/workflows/ci-validate-catalog.yaml
examples/recipes/workflows/generate-signal.yaml
examples/recipes/workflows/odpg-build.yaml
examples/recipes/workflows/portfolio-build.yaml
examples/recipes/workflows/portfolio-refresh.yaml
examples/recipes/workflows/portfolio-sync-render.yaml
examples/recipes/workflows/release-portfolio-localize.yaml
examples/recipes/workspace/portfolio.yaml
examples/recipes/workspace/odpc/catalog.yaml
examples/recipes/workspace/odpg/graph.yaml
examples/recipes/workspace/odps/products/customer-product.yaml
examples/recipes/workspaces/basic-portfolio-build/AGENTS.md
examples/recipes/workspaces/basic-portfolio-build/README.md
examples/recipes/workspaces/basic-portfolio-build/recipe.yaml
examples/recipes/workspaces/basic-portfolio-build/inputs/README.md
examples/recipes/workspaces/basic-portfolio-build/outputs-example/README.md
examples/recipes/workspaces/catalog-from-existing-fragments/AGENTS.md
examples/recipes/workspaces/catalog-from-existing-fragments/README.md
examples/recipes/workspaces/catalog-from-existing-fragments/recipe.yaml
examples/recipes/workspaces/catalog-from-existing-fragments/inputs/README.md
examples/recipes/workspaces/catalog-from-existing-fragments/outputs-example/README.md
examples/recipes/workspaces/graph-from-existing-fragments/AGENTS.md
examples/recipes/workspaces/graph-from-existing-fragments/README.md
examples/recipes/workspaces/graph-from-existing-fragments/recipe.yaml
examples/recipes/workspaces/graph-from-existing-fragments/inputs/README.md
examples/recipes/workspaces/graph-from-existing-fragments/outputs-example/README.md
examples/recipes/workspaces/graph-to-agent-context/AGENTS.md
examples/recipes/workspaces/graph-to-agent-context/README.md
examples/recipes/workspaces/graph-to-agent-context/recipe.yaml
examples/recipes/workspaces/graph-to-agent-context/inputs/README.md
examples/recipes/workspaces/graph-to-agent-context/outputs-example/README.md
examples/recipes/workspaces/local-llm-fragment-generation/AGENTS.md
examples/recipes/workspaces/local-llm-fragment-generation/README.md
examples/recipes/workspaces/local-llm-fragment-generation/recipe.yaml
examples/recipes/workspaces/local-llm-fragment-generation/inputs/README.md
examples/recipes/workspaces/local-llm-fragment-generation/outputs-example/README.md
examples/recipes/workspaces/online-llm-fragment-generation/AGENTS.md
examples/recipes/workspaces/online-llm-fragment-generation/README.md
examples/recipes/workspaces/online-llm-fragment-generation/recipe.yaml
examples/recipes/workspaces/online-llm-fragment-generation/inputs/README.md
examples/recipes/workspaces/online-llm-fragment-generation/outputs-example/README.md
examples/recipes/workspaces/source-documents-to-fragments/AGENTS.md
examples/recipes/workspaces/source-documents-to-fragments/README.md
examples/recipes/workspaces/source-documents-to-fragments/recipe.yaml
examples/recipes/workspaces/source-documents-to-fragments/inputs/README.md
examples/recipes/workspaces/source-documents-to-fragments/outputs-example/README.md
images/agent.png
images/feedback.png
images/glance.png
images/llms.png
open_data_products/__init__.py
open_data_products/_context_artifacts.py
open_data_products/_context_metrics.py
open_data_products/_gcf.py
open_data_products/_io.py
open_data_products/_search.py
open_data_products/_toon.py
open_data_products/agent.py
open_data_products/cli.py
open_data_products/cli_core.py
open_data_products/cli_product.py
open_data_products/okf.py
open_data_products/okf_spec.md
open_data_products/portfolio.py
open_data_products/portfolio_sources.py
open_data_products/pricing.py
open_data_products/recipes.py
open_data_products/resources.py
open_data_products/results.py
open_data_products/summary.py
open_data_products.egg-info/PKG-INFO
open_data_products.egg-info/SOURCES.txt
open_data_products.egg-info/dependency_links.txt
open_data_products.egg-info/entry_points.txt
open_data_products.egg-info/requires.txt
open_data_products.egg-info/top_level.txt
open_data_products/contracts/__init__.py
open_data_products/contracts/alignment.py
open_data_products/contracts/datacontract_cli_adapter.py
open_data_products/contracts/errors.py
open_data_products/contracts/loader.py
open_data_products/contracts/models.py
open_data_products/contracts/product.py
open_data_products/generation/__init__.py
open_data_products/generation/generation.config.yaml
open_data_products/generation/models.py
open_data_products/generation/prompts.py
open_data_products/generation/data/__init__.py
open_data_products/generation/data/prompts/__init__.py
open_data_products/generation/data/prompts/odpc_objective_fragment.md
open_data_products/generation/data/prompts/odpc_signal_fragment.md
open_data_products/generation/data/prompts/odpc_use_case_fragment.md
open_data_products/generation/data/prompts/odpg_edges_from_odpc_fragments.md
open_data_products/generation/data/prompts/odpg_graph_yaml.md
open_data_products/generation/data/prompts/odps_data_product_fragment.md
open_data_products/generation/data/prompts/odps_product_assemble_yaml.md
open_data_products/generation/data/prompts/odps_product_component_draft.md
open_data_products/generation/data/prompts/odps_product_facts.md
open_data_products/generation/data/prompts/odps_product_merge_facts.md
open_data_products/generation/data/prompts/odps_product_minimal_yaml.md
open_data_products/generation/data/prompts/odps_product_repair_yaml.md
open_data_products/generation/data/prompts/system.md
open_data_products/generation/fragments/__init__.py
open_data_products/generation/fragments/business_objective_reduce-departure-delay-minutes.yaml
open_data_products/generation/fragments/graph_explorer.html
open_data_products/generation/fragments/odpg_graph.yaml
open_data_products/generation/fragments/product_reference_airport-operations-performance.yaml
open_data_products/generation/fragments/product_reference_flight-connection-reliability.yaml
open_data_products/generation/fragments/product_reference_passenger-flow-queue.yaml
open_data_products/generation/fragments/signal_baggage-belt-congestion-signal.yaml
open_data_products/generation/fragments/signal_inbound-connection-risk-signal.yaml
open_data_products/generation/fragments/signal_security-queue-surge-signal.yaml
open_data_products/generation/fragments/signal_turnaround-delay-spike-signal.yaml
open_data_products/generation/fragments/use_case_flight-delay-risk-monitoring.yaml
open_data_products/generation/fragments/use_case_passenger-connection-protection.yaml
open_data_products/generation/source_docs/README.md
open_data_products/generation/source_docs/__init__.py
open_data_products/generation/source_docs/airport-business-objective.txt
open_data_products/generation/source_docs/airport-operations-brief.md
open_data_products/generation/source_docs/baggage-belt-congestion-signal.txt
open_data_products/generation/source_docs/connection-reliability-brief.md
open_data_products/generation/source_docs/flight-delay-use-case.md
open_data_products/generation/source_docs/inbound-connection-risk-signal.txt
open_data_products/generation/source_docs/passenger-connection-use-case.md
open_data_products/generation/source_docs/passenger-flow-brief.md
open_data_products/generation/source_docs/security-queue-surge-signal.txt
open_data_products/generation/source_docs/turnaround-delay-signal.txt
open_data_products/mcp/__init__.py
open_data_products/mcp/manifest.py
open_data_products/mcp/server.py
open_data_products/mcp/tools.py
open_data_products/odpc/__init__.py
open_data_products/odpc/catalog.py
open_data_products/odpc/cli.py
open_data_products/odpc/data/__init__.py
open_data_products/odpc/data/catalog/__init__.py
open_data_products/odpc/data/catalog/objects.jsonl
open_data_products/odpc/data/schema/__init__.py
open_data_products/odpc/data/schema/odpc.json
open_data_products/odpc/data/schema/odpc.yaml
open_data_products/odpc/data/templates/__init__.py
open_data_products/odpc/data/templates/catalog.html
open_data_products/odpg/__init__.py
open_data_products/odpg/_explorer_template.py
open_data_products/odpg/cli.py
open_data_products/odpg/convert.py
open_data_products/odpg/graph.py
open_data_products/odpg/data/__init__.py
open_data_products/odpg/data/graph/__init__.py
open_data_products/odpg/data/graph/graph.yaml
open_data_products/odpg/data/graph/objects.jsonl
open_data_products/odpg/data/schema/__init__.py
open_data_products/odpg/data/schema/odpg.json
open_data_products/odpg/data/schema/odpg.yaml
open_data_products/odpr/__init__.py
open_data_products/odpr/guidance.py
open_data_products/odpr/recipes.config.yaml
open_data_products/odpr/recipes.py
open_data_products/odpr/validation.py
open_data_products/odpr/data/__init__.py
open_data_products/odpr/data/recipes/recipes.jsonl
open_data_products/odpr/data/schema/__init__.py
open_data_products/odpr/data/schema/odpr.json
open_data_products/odpr/data/schema/odpr.yaml
open_data_products/odpr/data/starters/catalog.yaml
open_data_products/odpr/data/starters/build-data-product-portfolio/AGENTS.md
open_data_products/odpr/data/starters/build-data-product-portfolio/README.md
open_data_products/odpr/data/starters/build-data-product-portfolio/recipe.yaml
open_data_products/odpr/data/starters/fragments-to-odpc-catalog/AGENTS.md
open_data_products/odpr/data/starters/fragments-to-odpc-catalog/README.md
open_data_products/odpr/data/starters/fragments-to-odpc-catalog/recipe.yaml
open_data_products/odpr/data/starters/fragments-to-odpg-graph/AGENTS.md
open_data_products/odpr/data/starters/fragments-to-odpg-graph/README.md
open_data_products/odpr/data/starters/fragments-to-odpg-graph/recipe.yaml
open_data_products/odpr/data/starters/generate-agent-context/AGENTS.md
open_data_products/odpr/data/starters/generate-agent-context/README.md
open_data_products/odpr/data/starters/generate-agent-context/recipe.yaml
open_data_products/odpr/data/starters/source-to-product-fragments/AGENTS.md
open_data_products/odpr/data/starters/source-to-product-fragments/README.md
open_data_products/odpr/data/starters/source-to-product-fragments/recipe.yaml
open_data_products/odps/__init__.py
open_data_products/odps/_document.py
open_data_products/odps/_iso_codes.py
open_data_products/odps/_normalization.py
open_data_products/odps/_state.py
open_data_products/odps/_validators.py
open_data_products/odps/codecs.py
open_data_products/odps/core.py
open_data_products/odps/enums.py
open_data_products/odps/exceptions.py
open_data_products/odps/models.py
open_data_products/odps/protocols.py
open_data_products/odps/validation.py
open_data_products/odps/validators.py
open_data_products/odps/data/__init__.py
open_data_products/odps/data/schema/__init__.py
open_data_products/odps/data/schema/odps.json
open_data_products/odpv/__init__.py
open_data_products/odpv/cli.py
open_data_products/odpv/vocabulary.py
open_data_products/odpv/data/__init__.py
open_data_products/odpv/data/vocab/__init__.py
open_data_products/odpv/data/vocab/core.yaml
open_data_products/odpv/data/vocab/governance.yaml
open_data_products/odpv/data/vocab/odpv.json
open_data_products/odpv/data/vocab/odpv.yaml
open_data_products/odpv/data/vocab/relationships.yaml
open_data_products/odpv/data/vocab/terms.jsonl
open_data_products/odpv/data/vocab/value.yaml
skills/odp-author/SKILL.md
skills/odp-explore-graph/SKILL.md
skills/odp-validate/SKILL.md