GeneralManager 0.62.2__tar.gz → 0.62.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {generalmanager-0.62.2/src/GeneralManager.egg-info → generalmanager-0.62.3}/PKG-INFO +1 -1
- {generalmanager-0.62.2 → generalmanager-0.62.3}/pyproject.toml +2 -1
- {generalmanager-0.62.2 → generalmanager-0.62.3/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/GeneralManager.egg-info/SOURCES.txt +6 -0
- generalmanager-0.62.3/src/general_manager/chat/__init__.py +36 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/__main__.py +5 -2
- generalmanager-0.62.3/src/general_manager/chat/evals/datasets/basic_queries.yaml +216 -0
- generalmanager-0.62.3/src/general_manager/chat/evals/datasets/demo_readiness.yaml +108 -0
- generalmanager-0.62.3/src/general_manager/chat/evals/datasets/edge_cases.yaml +116 -0
- generalmanager-0.62.3/src/general_manager/chat/evals/datasets/follow_ups.yaml +95 -0
- generalmanager-0.62.3/src/general_manager/chat/evals/datasets/large_schema.yaml +70 -0
- generalmanager-0.62.3/src/general_manager/chat/evals/datasets/multi_hop.yaml +156 -0
- generalmanager-0.62.2/src/general_manager/chat/__init__.py +0 -6
- {generalmanager-0.62.2 → generalmanager-0.62.3}/LICENSE +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/README.md +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/setup.cfg +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/dataframes.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_resolvers.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_search.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_warmup.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_warmup_registry.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/apps.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/dependency_shards.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/run_context.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/audit.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/bootstrap.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/checks.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/consumer.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/errors.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/baseline.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/diagnostics.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/fingerprints.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/fixtures.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/judges/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/judges/contract.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/readiness.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/runner.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/traces.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/grounding.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/models.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/_shared.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/anthropic.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/base.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/google.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/ollama.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/openai.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/rate_limits.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/routing.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/schema_index.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/settings.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/signals.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/system_prompt.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/tool_metadata.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/tools.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/views.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/conf.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/dataframes/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/dataframes/measurements.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/logging.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/chat_cleanup.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/graphql_warmup.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/search_reconcile.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/manager/general_manager.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0004_search_index_state.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0007_upload_intent.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/models.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/py.typed +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/models.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/reconciliation.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/tasks.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/adapters.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/checks.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/config.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/errors.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/finalization.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/graphql.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/graphql_types.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/metrics.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/models.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/public.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/s3.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/services.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/tokens.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/types.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/urls.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/views.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/args_to_kwargs.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/make_cache_key.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/none_to_zero.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/tests/test_settings.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/tests/test_urls.py +0 -0
- {generalmanager-0.62.2 → generalmanager-0.62.3}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.62.
|
|
3
|
+
Version: 0.62.3
|
|
4
4
|
Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
|
|
5
5
|
Author-email: Tim Kleindick <tkleindick@yahoo.de>
|
|
6
6
|
License: MIT License
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "GeneralManager"
|
|
7
|
-
version = "0.62.
|
|
7
|
+
version = "0.62.3"
|
|
8
8
|
description = "Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Tim Kleindick", email = "tkleindick@yahoo.de" }]
|
|
@@ -85,6 +85,7 @@ where = ["src"]
|
|
|
85
85
|
|
|
86
86
|
[tool.setuptools.package-data]
|
|
87
87
|
"general_manager" = ["py.typed"]
|
|
88
|
+
"general_manager.chat.evals" = ["datasets/*.yaml"]
|
|
88
89
|
|
|
89
90
|
[tool.semantic_release]
|
|
90
91
|
allow_zero_version = true
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.62.
|
|
3
|
+
Version: 0.62.3
|
|
4
4
|
Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
|
|
5
5
|
Author-email: Tim Kleindick <tkleindick@yahoo.de>
|
|
6
6
|
License: MIT License
|
|
@@ -91,6 +91,12 @@ src/general_manager/chat/evals/fixtures.py
|
|
|
91
91
|
src/general_manager/chat/evals/readiness.py
|
|
92
92
|
src/general_manager/chat/evals/runner.py
|
|
93
93
|
src/general_manager/chat/evals/traces.py
|
|
94
|
+
src/general_manager/chat/evals/datasets/basic_queries.yaml
|
|
95
|
+
src/general_manager/chat/evals/datasets/demo_readiness.yaml
|
|
96
|
+
src/general_manager/chat/evals/datasets/edge_cases.yaml
|
|
97
|
+
src/general_manager/chat/evals/datasets/follow_ups.yaml
|
|
98
|
+
src/general_manager/chat/evals/datasets/large_schema.yaml
|
|
99
|
+
src/general_manager/chat/evals/datasets/multi_hop.yaml
|
|
94
100
|
src/general_manager/chat/evals/judges/__init__.py
|
|
95
101
|
src/general_manager/chat/evals/judges/answer_quality.py
|
|
96
102
|
src/general_manager/chat/evals/judges/contract.py
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"""General Manager chat integration."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
|
+
|
|
7
|
+
from general_manager.utils.public_api import build_module_dir, resolve_export
|
|
8
|
+
|
|
9
|
+
__all__ = ["ChatConfigurationError", "initialize_chat"]
|
|
10
|
+
|
|
11
|
+
_MODULE_MAP = {
|
|
12
|
+
"ChatConfigurationError": (
|
|
13
|
+
"general_manager.chat.settings",
|
|
14
|
+
"ChatConfigurationError",
|
|
15
|
+
),
|
|
16
|
+
"initialize_chat": ("general_manager.chat.bootstrap", "initialize_chat"),
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if TYPE_CHECKING:
|
|
20
|
+
from general_manager.chat.bootstrap import initialize_chat
|
|
21
|
+
from general_manager.chat.settings import ChatConfigurationError
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def __getattr__(name: str) -> object:
|
|
25
|
+
"""Resolve and cache a public chat export."""
|
|
26
|
+
return resolve_export(
|
|
27
|
+
name,
|
|
28
|
+
module_all=__all__,
|
|
29
|
+
module_map=_MODULE_MAP,
|
|
30
|
+
module_globals=globals(),
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def __dir__() -> list[str]:
|
|
35
|
+
"""Return the chat module's available names."""
|
|
36
|
+
return build_module_dir(module_all=__all__, module_globals=globals())
|
|
@@ -70,8 +70,11 @@ def main(argv: list[str] | None = None) -> None:
|
|
|
70
70
|
|
|
71
71
|
if args.settings:
|
|
72
72
|
os.environ["DJANGO_SETTINGS_MODULE"] = args.settings
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
elif not os.environ.get("DJANGO_SETTINGS_MODULE"):
|
|
74
|
+
parser.error(
|
|
75
|
+
"Django settings are required; pass --settings or set "
|
|
76
|
+
"DJANGO_SETTINGS_MODULE."
|
|
77
|
+
)
|
|
75
78
|
|
|
76
79
|
import django
|
|
77
80
|
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# Basic single-manager queries with simple filters and field selection.
|
|
2
|
+
|
|
3
|
+
- name: list_all_materials
|
|
4
|
+
description: "List all materials without filters"
|
|
5
|
+
tier: 0
|
|
6
|
+
tags: ["single_manager_query", "grounded_answer"]
|
|
7
|
+
conversation:
|
|
8
|
+
- user: "Show me all materials"
|
|
9
|
+
expectations:
|
|
10
|
+
contract:
|
|
11
|
+
category: single_manager_query
|
|
12
|
+
hard:
|
|
13
|
+
required_tool_calls:
|
|
14
|
+
- name: query
|
|
15
|
+
args_contain:
|
|
16
|
+
manager: MaterialManager
|
|
17
|
+
forbidden_tools: ["mutate"]
|
|
18
|
+
results_contain: ["Steel", "Aluminum", "Cobalt"]
|
|
19
|
+
answer_contains: ["Steel", "Aluminum", "Cobalt"]
|
|
20
|
+
strategy:
|
|
21
|
+
recommended_tool_calls:
|
|
22
|
+
- name: search_managers
|
|
23
|
+
strict_order: false
|
|
24
|
+
tool_calls:
|
|
25
|
+
- name: query
|
|
26
|
+
args_contain:
|
|
27
|
+
manager: MaterialManager
|
|
28
|
+
results_contain: ["Steel", "Aluminum", "Cobalt"]
|
|
29
|
+
answer_contains: ["Steel", "Aluminum", "Cobalt"]
|
|
30
|
+
|
|
31
|
+
- name: filter_material_by_name
|
|
32
|
+
description: "Filter materials by exact name"
|
|
33
|
+
tier: 0
|
|
34
|
+
tags: ["single_manager_query", "grounded_answer"]
|
|
35
|
+
conversation:
|
|
36
|
+
- user: "Find the material named Steel"
|
|
37
|
+
expectations:
|
|
38
|
+
contract:
|
|
39
|
+
category: single_manager_query
|
|
40
|
+
hard:
|
|
41
|
+
required_tool_calls:
|
|
42
|
+
- name: query
|
|
43
|
+
args_contain:
|
|
44
|
+
manager: MaterialManager
|
|
45
|
+
forbidden_tools: ["mutate"]
|
|
46
|
+
results_contain: ["Steel"]
|
|
47
|
+
results_exclude: ["Aluminum", "Cobalt"]
|
|
48
|
+
answer_contains: ["Steel"]
|
|
49
|
+
strategy:
|
|
50
|
+
recommended_tool_calls:
|
|
51
|
+
- name: search_managers
|
|
52
|
+
strict_order: false
|
|
53
|
+
tool_calls:
|
|
54
|
+
- name: query
|
|
55
|
+
args_contain:
|
|
56
|
+
manager: MaterialManager
|
|
57
|
+
results_contain: ["Steel"]
|
|
58
|
+
results_exclude: ["Aluminum", "Cobalt"]
|
|
59
|
+
answer_contains: ["Steel"]
|
|
60
|
+
|
|
61
|
+
- name: search_then_query_parts
|
|
62
|
+
description: "Discovery flow: search managers then query parts"
|
|
63
|
+
tier: 0
|
|
64
|
+
tags: ["manager_discovery", "single_manager_query", "grounded_answer"]
|
|
65
|
+
conversation:
|
|
66
|
+
- user: "What parts do we have in inventory?"
|
|
67
|
+
expectations:
|
|
68
|
+
contract:
|
|
69
|
+
category: single_manager_query
|
|
70
|
+
hard:
|
|
71
|
+
required_tool_calls:
|
|
72
|
+
- name: query
|
|
73
|
+
args_contain:
|
|
74
|
+
manager: PartManager
|
|
75
|
+
forbidden_tools: ["mutate"]
|
|
76
|
+
results_contain: ["Bolt", "Gear", "Bearing"]
|
|
77
|
+
answer_contains: ["Bolt", "Gear", "Bearing"]
|
|
78
|
+
strategy:
|
|
79
|
+
recommended_tool_calls:
|
|
80
|
+
- name: search_managers
|
|
81
|
+
strict_order: false
|
|
82
|
+
tool_calls:
|
|
83
|
+
- name: search_managers
|
|
84
|
+
- name: query
|
|
85
|
+
args_contain:
|
|
86
|
+
manager: PartManager
|
|
87
|
+
results_contain: ["Bolt", "Gear", "Bearing"]
|
|
88
|
+
answer_contains: ["Bolt", "Gear", "Bearing"]
|
|
89
|
+
|
|
90
|
+
- name: get_schema_before_query
|
|
91
|
+
description: "Inspect manager schema before querying"
|
|
92
|
+
tier: 0
|
|
93
|
+
tags: ["schema_inspection", "single_manager_query", "grounded_answer"]
|
|
94
|
+
conversation:
|
|
95
|
+
- user: "What fields does the MaterialManager have? Then list materials."
|
|
96
|
+
expectations:
|
|
97
|
+
contract:
|
|
98
|
+
category: schema_inspection
|
|
99
|
+
hard:
|
|
100
|
+
required_tool_calls:
|
|
101
|
+
- name: get_manager_schema
|
|
102
|
+
args_contain:
|
|
103
|
+
manager: MaterialManager
|
|
104
|
+
- name: query
|
|
105
|
+
args_contain:
|
|
106
|
+
manager: MaterialManager
|
|
107
|
+
forbidden_tools: ["mutate"]
|
|
108
|
+
results_contain: ["Steel", "Aluminum", "Cobalt"]
|
|
109
|
+
answer_contains: ["name", "density", "Steel", "Aluminum", "Cobalt"]
|
|
110
|
+
tool_calls:
|
|
111
|
+
- name: get_manager_schema
|
|
112
|
+
args_contain:
|
|
113
|
+
manager: MaterialManager
|
|
114
|
+
- name: query
|
|
115
|
+
args_contain:
|
|
116
|
+
manager: MaterialManager
|
|
117
|
+
results_contain: ["Steel", "Aluminum", "Cobalt"]
|
|
118
|
+
answer_contains: ["name", "density", "Steel", "Aluminum", "Cobalt"]
|
|
119
|
+
|
|
120
|
+
- name: filter_high_density
|
|
121
|
+
description: "Query with numeric filter"
|
|
122
|
+
tier: 0
|
|
123
|
+
tags: ["single_manager_query", "grounded_answer"]
|
|
124
|
+
conversation:
|
|
125
|
+
- user: "Which materials have density greater than 5?"
|
|
126
|
+
expectations:
|
|
127
|
+
contract:
|
|
128
|
+
category: single_manager_query
|
|
129
|
+
hard:
|
|
130
|
+
required_tool_calls:
|
|
131
|
+
- name: query
|
|
132
|
+
args_contain:
|
|
133
|
+
manager: MaterialManager
|
|
134
|
+
forbidden_tools: ["mutate"]
|
|
135
|
+
results_contain: ["Steel", "Cobalt"]
|
|
136
|
+
results_exclude: ["Aluminum"]
|
|
137
|
+
answer_contains: ["Steel", "Cobalt"]
|
|
138
|
+
answer_excludes: ["Aluminum"]
|
|
139
|
+
strategy:
|
|
140
|
+
recommended_tool_calls:
|
|
141
|
+
- name: search_managers
|
|
142
|
+
strict_order: false
|
|
143
|
+
tool_calls:
|
|
144
|
+
- name: query
|
|
145
|
+
args_contain:
|
|
146
|
+
manager: MaterialManager
|
|
147
|
+
results_contain: ["Steel", "Cobalt"]
|
|
148
|
+
results_exclude: ["Aluminum"]
|
|
149
|
+
answer_contains: ["Steel", "Cobalt"]
|
|
150
|
+
|
|
151
|
+
- name: schema_before_relation_filter
|
|
152
|
+
description: "Inspect schema before using relation filters from a domain query"
|
|
153
|
+
tier: 0
|
|
154
|
+
tags: ["manager_discovery", "schema_inspection", "relation_traversal", "grounded_answer"]
|
|
155
|
+
conversation:
|
|
156
|
+
- user: "Which parts use a material named Steel?"
|
|
157
|
+
expectations:
|
|
158
|
+
contract:
|
|
159
|
+
category: relation_traversal
|
|
160
|
+
hard:
|
|
161
|
+
required_tool_calls:
|
|
162
|
+
- name: get_manager_schema
|
|
163
|
+
args_contain:
|
|
164
|
+
manager: PartManager
|
|
165
|
+
- name: query
|
|
166
|
+
args_contain:
|
|
167
|
+
manager: PartManager
|
|
168
|
+
forbidden_tools: ["mutate"]
|
|
169
|
+
results_contain: ["Bolt"]
|
|
170
|
+
results_exclude: ["Bearing", "Gear"]
|
|
171
|
+
answer_contains: ["Bolt", "Steel"]
|
|
172
|
+
strategy:
|
|
173
|
+
recommended_tool_calls:
|
|
174
|
+
- name: search_managers
|
|
175
|
+
strict_order: false
|
|
176
|
+
tool_calls:
|
|
177
|
+
- name: search_managers
|
|
178
|
+
- name: get_manager_schema
|
|
179
|
+
args_contain:
|
|
180
|
+
manager: PartManager
|
|
181
|
+
- name: query
|
|
182
|
+
args_contain:
|
|
183
|
+
manager: PartManager
|
|
184
|
+
results_contain: ["Bolt"]
|
|
185
|
+
results_exclude: ["Bearing", "Gear"]
|
|
186
|
+
answer_contains: ["Bolt", "Steel"]
|
|
187
|
+
|
|
188
|
+
- name: exact_manager_needs_schema_for_fields
|
|
189
|
+
description: "Exact manager names can skip search but should inspect schema before field-specific query"
|
|
190
|
+
tier: 0
|
|
191
|
+
tags: ["schema_inspection", "single_manager_query", "grounded_answer"]
|
|
192
|
+
conversation:
|
|
193
|
+
- user: "In PartManager, show each part with its material name."
|
|
194
|
+
expectations:
|
|
195
|
+
contract:
|
|
196
|
+
category: schema_inspection
|
|
197
|
+
hard:
|
|
198
|
+
required_tool_calls:
|
|
199
|
+
- name: get_manager_schema
|
|
200
|
+
args_contain:
|
|
201
|
+
manager: PartManager
|
|
202
|
+
- name: query
|
|
203
|
+
args_contain:
|
|
204
|
+
manager: PartManager
|
|
205
|
+
forbidden_tools: ["mutate"]
|
|
206
|
+
results_contain: ["Bolt", "Steel", "Bearing", "Aluminum", "Gear", "Cobalt"]
|
|
207
|
+
answer_contains: ["Bolt", "Steel", "Bearing", "Aluminum", "Gear", "Cobalt"]
|
|
208
|
+
tool_calls:
|
|
209
|
+
- name: get_manager_schema
|
|
210
|
+
args_contain:
|
|
211
|
+
manager: PartManager
|
|
212
|
+
- name: query
|
|
213
|
+
args_contain:
|
|
214
|
+
manager: PartManager
|
|
215
|
+
results_contain: ["Bolt", "Steel", "Bearing", "Aluminum", "Gear", "Cobalt"]
|
|
216
|
+
answer_contains: ["Bolt", "Steel", "Bearing", "Aluminum", "Gear", "Cobalt"]
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Demo readiness cases for a weaker local LLM. These are product-safe,
|
|
2
|
+
# realistic flows that should pass before showing the prototype.
|
|
3
|
+
|
|
4
|
+
- name: demo_inventory_parts
|
|
5
|
+
description: "List available parts from a natural language inventory prompt"
|
|
6
|
+
tier: 1
|
|
7
|
+
tags: ["demo", "manager_discovery", "single_manager_query", "grounded_answer"]
|
|
8
|
+
conversation:
|
|
9
|
+
- user: "What parts do we have in inventory?"
|
|
10
|
+
expectations:
|
|
11
|
+
contract:
|
|
12
|
+
category: single_manager_query
|
|
13
|
+
hard:
|
|
14
|
+
required_tool_calls:
|
|
15
|
+
- name: query
|
|
16
|
+
args_contain:
|
|
17
|
+
manager: PartManager
|
|
18
|
+
forbidden_tools: ["mutate"]
|
|
19
|
+
results_contain: ["Bolt", "Bearing", "Gear"]
|
|
20
|
+
answer_contains: ["Bolt", "Bearing", "Gear"]
|
|
21
|
+
strategy:
|
|
22
|
+
recommended_tool_calls:
|
|
23
|
+
- name: search_managers
|
|
24
|
+
strict_order: false
|
|
25
|
+
|
|
26
|
+
- name: demo_high_density_materials
|
|
27
|
+
description: "Filter materials by numeric density"
|
|
28
|
+
tier: 1
|
|
29
|
+
tags: ["demo", "single_manager_query", "grounded_answer"]
|
|
30
|
+
conversation:
|
|
31
|
+
- user: "Which materials have density greater than 5?"
|
|
32
|
+
expectations:
|
|
33
|
+
contract:
|
|
34
|
+
category: single_manager_query
|
|
35
|
+
hard:
|
|
36
|
+
required_tool_calls:
|
|
37
|
+
- name: query
|
|
38
|
+
args_contain:
|
|
39
|
+
manager: MaterialManager
|
|
40
|
+
forbidden_tools: ["mutate"]
|
|
41
|
+
results_contain: ["Steel", "Cobalt"]
|
|
42
|
+
results_exclude: ["Aluminum"]
|
|
43
|
+
answer_contains: ["Steel", "Cobalt"]
|
|
44
|
+
answer_excludes: ["Aluminum"]
|
|
45
|
+
|
|
46
|
+
- name: demo_cobalt_projects
|
|
47
|
+
description: "Traverse material to project through parts"
|
|
48
|
+
tier: 1
|
|
49
|
+
tags: ["demo", "relation_traversal", "grounded_answer"]
|
|
50
|
+
conversation:
|
|
51
|
+
- user: "What projects contain parts with cobalt?"
|
|
52
|
+
expectations:
|
|
53
|
+
contract:
|
|
54
|
+
category: relation_traversal
|
|
55
|
+
hard:
|
|
56
|
+
required_tool_calls:
|
|
57
|
+
- name: query
|
|
58
|
+
args_contain:
|
|
59
|
+
manager: ProjectManager
|
|
60
|
+
forbidden_tools: ["mutate"]
|
|
61
|
+
results_contain: ["Apollo"]
|
|
62
|
+
results_exclude: ["Mercury"]
|
|
63
|
+
answer_contains: ["Apollo"]
|
|
64
|
+
strategy:
|
|
65
|
+
recommended_tool_calls:
|
|
66
|
+
- name: search_managers
|
|
67
|
+
- name: find_path
|
|
68
|
+
strict_order: false
|
|
69
|
+
|
|
70
|
+
- name: demo_affected_by_update_read_only
|
|
71
|
+
description: "Read-only impact question must not mutate"
|
|
72
|
+
tier: 1
|
|
73
|
+
tags: ["demo", "read_only_safety", "relation_traversal", "grounded_answer"]
|
|
74
|
+
conversation:
|
|
75
|
+
- user: "Which projects would be affected if cobalt parts were updated?"
|
|
76
|
+
expectations:
|
|
77
|
+
contract:
|
|
78
|
+
category: read_only_safety
|
|
79
|
+
hard:
|
|
80
|
+
required_tool_calls:
|
|
81
|
+
- name: query
|
|
82
|
+
args_contain:
|
|
83
|
+
manager: ProjectManager
|
|
84
|
+
forbidden_tools: ["mutate"]
|
|
85
|
+
results_contain: ["Apollo"]
|
|
86
|
+
results_exclude: ["Mercury"]
|
|
87
|
+
answer_contains: ["Apollo"]
|
|
88
|
+
answer_excludes: ["Mercury"]
|
|
89
|
+
strategy:
|
|
90
|
+
recommended_tool_calls:
|
|
91
|
+
- name: search_managers
|
|
92
|
+
- name: find_path
|
|
93
|
+
strict_order: false
|
|
94
|
+
|
|
95
|
+
- name: demo_available_managers
|
|
96
|
+
description: "Explain available manager types without querying records"
|
|
97
|
+
tier: 1
|
|
98
|
+
tags: ["demo", "manager_discovery"]
|
|
99
|
+
conversation:
|
|
100
|
+
- user: "What kinds of managers can I ask about?"
|
|
101
|
+
expectations:
|
|
102
|
+
contract:
|
|
103
|
+
category: manager_discovery
|
|
104
|
+
hard:
|
|
105
|
+
required_tool_calls:
|
|
106
|
+
- name: search_managers
|
|
107
|
+
forbidden_tools: ["mutate", "query"]
|
|
108
|
+
answer_contains: ["Material", "Part", "Project"]
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Edge cases: empty results, unknown managers, permission denied, ambiguous queries.
|
|
2
|
+
|
|
3
|
+
- name: empty_results
|
|
4
|
+
description: "Query that returns no matching records"
|
|
5
|
+
tier: 0
|
|
6
|
+
tags: ["single_manager_query", "empty_result", "grounded_answer"]
|
|
7
|
+
conversation:
|
|
8
|
+
- user: "Find materials named Unobtainium"
|
|
9
|
+
expectations:
|
|
10
|
+
contract:
|
|
11
|
+
category: empty_result
|
|
12
|
+
hard:
|
|
13
|
+
required_tool_calls:
|
|
14
|
+
- name: query
|
|
15
|
+
args_contain:
|
|
16
|
+
manager: MaterialManager
|
|
17
|
+
forbidden_tools: ["mutate"]
|
|
18
|
+
results_exclude: ["Steel", "Aluminum", "Cobalt"]
|
|
19
|
+
answer_contains: ["no"]
|
|
20
|
+
answer_excludes: ["Steel", "Aluminum", "Cobalt"]
|
|
21
|
+
tool_calls:
|
|
22
|
+
- name: query
|
|
23
|
+
args_contain:
|
|
24
|
+
manager: MaterialManager
|
|
25
|
+
results_contain: []
|
|
26
|
+
results_exclude: ["Steel", "Aluminum", "Cobalt"]
|
|
27
|
+
answer_contains: ["no"]
|
|
28
|
+
answer_excludes: ["Steel", "Aluminum", "Cobalt"]
|
|
29
|
+
|
|
30
|
+
- name: unknown_manager
|
|
31
|
+
description: "User asks about a manager that does not exist"
|
|
32
|
+
tier: 0
|
|
33
|
+
tags: ["manager_discovery", "grounded_answer"]
|
|
34
|
+
conversation:
|
|
35
|
+
- user: "Show me data from the VehicleManager"
|
|
36
|
+
expectations:
|
|
37
|
+
contract:
|
|
38
|
+
category: manager_discovery
|
|
39
|
+
hard:
|
|
40
|
+
required_tool_calls:
|
|
41
|
+
- name: search_managers
|
|
42
|
+
forbidden_tools: ["mutate", "query"]
|
|
43
|
+
answer_excludes: ["VehicleManager"]
|
|
44
|
+
tool_calls:
|
|
45
|
+
- name: search_managers
|
|
46
|
+
answer_excludes: ["VehicleManager"]
|
|
47
|
+
|
|
48
|
+
- name: ambiguous_query
|
|
49
|
+
description: "Vague question that requires discovery before answering"
|
|
50
|
+
tier: 0
|
|
51
|
+
tags: ["manager_discovery", "grounded_answer"]
|
|
52
|
+
conversation:
|
|
53
|
+
- user: "What data do you have access to?"
|
|
54
|
+
expectations:
|
|
55
|
+
contract:
|
|
56
|
+
category: manager_discovery
|
|
57
|
+
hard:
|
|
58
|
+
required_tool_calls:
|
|
59
|
+
- name: search_managers
|
|
60
|
+
forbidden_tools: ["mutate", "query"]
|
|
61
|
+
answer_contains: ["Material", "Part"]
|
|
62
|
+
tool_calls:
|
|
63
|
+
- name: search_managers
|
|
64
|
+
answer_contains: ["Material", "Part"]
|
|
65
|
+
|
|
66
|
+
- name: read_question_must_not_mutate
|
|
67
|
+
description: "Read-only phrasing mentioning updates should not trigger mutations"
|
|
68
|
+
tier: 0
|
|
69
|
+
tags: ["manager_discovery", "relation_traversal", "read_only_safety", "grounded_answer"]
|
|
70
|
+
conversation:
|
|
71
|
+
- user: "Which projects would be affected if cobalt parts were updated?"
|
|
72
|
+
expectations:
|
|
73
|
+
contract:
|
|
74
|
+
category: read_only_safety
|
|
75
|
+
hard:
|
|
76
|
+
required_tool_calls:
|
|
77
|
+
- name: query
|
|
78
|
+
args_contain:
|
|
79
|
+
manager: ProjectManager
|
|
80
|
+
forbidden_tools: ["mutate"]
|
|
81
|
+
results_contain: ["Apollo"]
|
|
82
|
+
results_exclude: ["Mercury"]
|
|
83
|
+
answer_contains: ["Apollo"]
|
|
84
|
+
answer_excludes: ["Mercury"]
|
|
85
|
+
strategy:
|
|
86
|
+
recommended_tool_calls:
|
|
87
|
+
- name: search_managers
|
|
88
|
+
- name: find_path
|
|
89
|
+
strict_order: false
|
|
90
|
+
tool_calls:
|
|
91
|
+
- name: search_managers
|
|
92
|
+
- name: find_path
|
|
93
|
+
- name: query
|
|
94
|
+
args_contain:
|
|
95
|
+
manager: ProjectManager
|
|
96
|
+
results_contain: ["Apollo"]
|
|
97
|
+
results_exclude: ["Mercury"]
|
|
98
|
+
answer_contains: ["Apollo"]
|
|
99
|
+
|
|
100
|
+
- name: broad_manager_discovery_no_data_query
|
|
101
|
+
description: "Data model inventory should discover managers without querying records"
|
|
102
|
+
tier: 0
|
|
103
|
+
tags: ["manager_discovery", "grounded_answer"]
|
|
104
|
+
conversation:
|
|
105
|
+
- user: "What kinds of managers can I ask about?"
|
|
106
|
+
expectations:
|
|
107
|
+
contract:
|
|
108
|
+
category: manager_discovery
|
|
109
|
+
hard:
|
|
110
|
+
required_tool_calls:
|
|
111
|
+
- name: search_managers
|
|
112
|
+
forbidden_tools: ["mutate", "query"]
|
|
113
|
+
answer_contains: ["Material", "Part", "Project"]
|
|
114
|
+
tool_calls:
|
|
115
|
+
- name: search_managers
|
|
116
|
+
answer_contains: ["Material", "Part", "Project"]
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Multi-turn conversations with context references.
|
|
2
|
+
|
|
3
|
+
- name: refine_query
|
|
4
|
+
description: "Initial broad query followed by a narrowing follow-up"
|
|
5
|
+
tier: 0
|
|
6
|
+
tags: ["follow_up", "single_manager_query", "grounded_answer"]
|
|
7
|
+
conversation:
|
|
8
|
+
- user: "Show me all parts"
|
|
9
|
+
- user: "Now just show me the ones that use Steel"
|
|
10
|
+
expectations:
|
|
11
|
+
contract:
|
|
12
|
+
category: follow_up
|
|
13
|
+
hard:
|
|
14
|
+
required_tool_calls:
|
|
15
|
+
- name: query
|
|
16
|
+
args_contain:
|
|
17
|
+
manager: PartManager
|
|
18
|
+
forbidden_tools: ["mutate"]
|
|
19
|
+
results_contain: ["Bolt"]
|
|
20
|
+
answer_contains: ["Bolt"]
|
|
21
|
+
tool_calls:
|
|
22
|
+
- name: query
|
|
23
|
+
args_contain:
|
|
24
|
+
manager: PartManager
|
|
25
|
+
- name: query
|
|
26
|
+
args_contain:
|
|
27
|
+
manager: PartManager
|
|
28
|
+
results_contain: ["Bolt"]
|
|
29
|
+
answer_contains: ["Bolt"]
|
|
30
|
+
|
|
31
|
+
- name: explore_then_query
|
|
32
|
+
description: "Schema exploration turn followed by a data query turn"
|
|
33
|
+
tier: 0
|
|
34
|
+
tags: ["follow_up", "schema_inspection", "single_manager_query", "grounded_answer"]
|
|
35
|
+
conversation:
|
|
36
|
+
- user: "Tell me about the MaterialManager schema"
|
|
37
|
+
- user: "Great, now list all materials with density above 7"
|
|
38
|
+
expectations:
|
|
39
|
+
contract:
|
|
40
|
+
category: follow_up
|
|
41
|
+
hard:
|
|
42
|
+
required_tool_calls:
|
|
43
|
+
- name: get_manager_schema
|
|
44
|
+
args_contain:
|
|
45
|
+
manager: MaterialManager
|
|
46
|
+
- name: query
|
|
47
|
+
args_contain:
|
|
48
|
+
manager: MaterialManager
|
|
49
|
+
forbidden_tools: ["mutate"]
|
|
50
|
+
results_contain: ["Steel"]
|
|
51
|
+
answer_contains: ["Steel"]
|
|
52
|
+
tool_calls:
|
|
53
|
+
- name: get_manager_schema
|
|
54
|
+
args_contain:
|
|
55
|
+
manager: MaterialManager
|
|
56
|
+
- name: query
|
|
57
|
+
args_contain:
|
|
58
|
+
manager: MaterialManager
|
|
59
|
+
results_contain: ["Steel"]
|
|
60
|
+
answer_contains: ["Steel"]
|
|
61
|
+
|
|
62
|
+
- name: pronoun_reference
|
|
63
|
+
description: "Follow-up uses a pronoun referring to a previous result"
|
|
64
|
+
tier: 0
|
|
65
|
+
tags: ["follow_up", "relation_traversal", "grounded_answer"]
|
|
66
|
+
conversation:
|
|
67
|
+
- user: "Find the Cobalt material"
|
|
68
|
+
- user: "What parts use it?"
|
|
69
|
+
expectations:
|
|
70
|
+
contract:
|
|
71
|
+
category: follow_up
|
|
72
|
+
hard:
|
|
73
|
+
required_tool_calls:
|
|
74
|
+
- name: query
|
|
75
|
+
args_contain:
|
|
76
|
+
manager: MaterialManager
|
|
77
|
+
- name: query
|
|
78
|
+
args_contain:
|
|
79
|
+
manager: PartManager
|
|
80
|
+
forbidden_tools: ["mutate"]
|
|
81
|
+
results_contain: ["Cobalt", "Gear"]
|
|
82
|
+
answer_contains: ["Cobalt", "Gear"]
|
|
83
|
+
strategy:
|
|
84
|
+
recommended_tool_calls:
|
|
85
|
+
- name: find_path
|
|
86
|
+
strict_order: false
|
|
87
|
+
tool_calls:
|
|
88
|
+
- name: query
|
|
89
|
+
args_contain:
|
|
90
|
+
manager: MaterialManager
|
|
91
|
+
- name: query
|
|
92
|
+
args_contain:
|
|
93
|
+
manager: PartManager
|
|
94
|
+
results_contain: ["Cobalt", "Gear"]
|
|
95
|
+
answer_contains: ["Cobalt", "Gear"]
|