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.
Files changed (286) hide show
  1. {generalmanager-0.62.2/src/GeneralManager.egg-info → generalmanager-0.62.3}/PKG-INFO +1 -1
  2. {generalmanager-0.62.2 → generalmanager-0.62.3}/pyproject.toml +2 -1
  3. {generalmanager-0.62.2 → generalmanager-0.62.3/src/GeneralManager.egg-info}/PKG-INFO +1 -1
  4. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/GeneralManager.egg-info/SOURCES.txt +6 -0
  5. generalmanager-0.62.3/src/general_manager/chat/__init__.py +36 -0
  6. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/__main__.py +5 -2
  7. generalmanager-0.62.3/src/general_manager/chat/evals/datasets/basic_queries.yaml +216 -0
  8. generalmanager-0.62.3/src/general_manager/chat/evals/datasets/demo_readiness.yaml +108 -0
  9. generalmanager-0.62.3/src/general_manager/chat/evals/datasets/edge_cases.yaml +116 -0
  10. generalmanager-0.62.3/src/general_manager/chat/evals/datasets/follow_ups.yaml +95 -0
  11. generalmanager-0.62.3/src/general_manager/chat/evals/datasets/large_schema.yaml +70 -0
  12. generalmanager-0.62.3/src/general_manager/chat/evals/datasets/multi_hop.yaml +156 -0
  13. generalmanager-0.62.2/src/general_manager/chat/__init__.py +0 -6
  14. {generalmanager-0.62.2 → generalmanager-0.62.3}/LICENSE +0 -0
  15. {generalmanager-0.62.2 → generalmanager-0.62.3}/README.md +0 -0
  16. {generalmanager-0.62.2 → generalmanager-0.62.3}/setup.cfg +0 -0
  17. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
  18. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/GeneralManager.egg-info/requires.txt +0 -0
  19. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/GeneralManager.egg-info/top_level.txt +0 -0
  20. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/__init__.py +0 -0
  21. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/__init__.py +0 -0
  22. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/api.py +0 -0
  23. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/bucket.py +0 -0
  24. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/cache.py +0 -0
  25. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/dataframes.py +0 -0
  26. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/factory.py +0 -0
  27. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/general_manager.py +0 -0
  28. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/interface.py +0 -0
  29. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/manager.py +0 -0
  30. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/measurement.py +0 -0
  31. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/permission.py +0 -0
  32. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/rule.py +0 -0
  33. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/search.py +0 -0
  34. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/_types/utils.py +0 -0
  35. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/__init__.py +0 -0
  36. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql.py +0 -0
  37. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_errors.py +0 -0
  38. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_mutations.py +0 -0
  39. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_prefetch.py +0 -0
  40. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_resolvers.py +0 -0
  41. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_search.py +0 -0
  42. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
  43. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_subscriptions.py +0 -0
  44. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_view.py +0 -0
  45. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_warmup.py +0 -0
  46. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_warmup_registry.py +0 -0
  47. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
  48. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/mutation.py +0 -0
  49. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/property.py +0 -0
  50. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/registry.py +0 -0
  51. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/remote_api.py +0 -0
  52. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/remote_invalidation.py +0 -0
  53. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/api/remote_invalidation_client.py +0 -0
  54. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/apps.py +0 -0
  55. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bootstrap.py +0 -0
  56. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/__init__.py +0 -0
  57. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/base_bucket.py +0 -0
  58. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/calculation_bucket.py +0 -0
  59. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/database_bucket.py +0 -0
  60. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/group_bucket.py +0 -0
  61. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/indexing.py +0 -0
  62. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/bucket/request_bucket.py +0 -0
  63. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/__init__.py +0 -0
  64. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/cache_decorator.py +0 -0
  65. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/cache_tracker.py +0 -0
  66. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/dependency_cache.py +0 -0
  67. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/dependency_index.py +0 -0
  68. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/dependency_matching.py +0 -0
  69. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/dependency_publish.py +0 -0
  70. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/dependency_shards.py +0 -0
  71. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/model_dependency_collector.py +0 -0
  72. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/run_context.py +0 -0
  73. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/cache/signals.py +0 -0
  74. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/audit.py +0 -0
  75. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/bootstrap.py +0 -0
  76. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/checks.py +0 -0
  77. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/consumer.py +0 -0
  78. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/errors.py +0 -0
  79. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/__init__.py +0 -0
  80. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/baseline.py +0 -0
  81. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/diagnostics.py +0 -0
  82. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/fingerprints.py +0 -0
  83. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/fixtures.py +0 -0
  84. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/judges/__init__.py +0 -0
  85. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
  86. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/judges/contract.py +0 -0
  87. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
  88. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
  89. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/readiness.py +0 -0
  90. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/runner.py +0 -0
  91. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/evals/traces.py +0 -0
  92. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/grounding.py +0 -0
  93. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/models.py +0 -0
  94. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/__init__.py +0 -0
  95. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/_shared.py +0 -0
  96. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/anthropic.py +0 -0
  97. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/base.py +0 -0
  98. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/google.py +0 -0
  99. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/ollama.py +0 -0
  100. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/providers/openai.py +0 -0
  101. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/rate_limits.py +0 -0
  102. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/routing.py +0 -0
  103. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/schema_index.py +0 -0
  104. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/settings.py +0 -0
  105. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/signals.py +0 -0
  106. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/system_prompt.py +0 -0
  107. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/tool_metadata.py +0 -0
  108. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/tools.py +0 -0
  109. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/chat/views.py +0 -0
  110. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/conf.py +0 -0
  111. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/dataframes/__init__.py +0 -0
  112. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/dataframes/measurements.py +0 -0
  113. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/factory/__init__.py +0 -0
  114. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/factory/auto_factory.py +0 -0
  115. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/factory/factories.py +0 -0
  116. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/factory/factory_methods.py +0 -0
  117. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/__init__.py +0 -0
  118. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/base_interface.py +0 -0
  119. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/bundles/__init__.py +0 -0
  120. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/bundles/calculation.py +0 -0
  121. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/bundles/database.py +0 -0
  122. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/bundles/remote_manager.py +0 -0
  123. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/bundles/request.py +0 -0
  124. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/__init__.py +0 -0
  125. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/base.py +0 -0
  126. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/builtin.py +0 -0
  127. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
  128. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
  129. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
  130. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/configuration.py +0 -0
  131. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/core/observability.py +0 -0
  132. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/core/utils.py +0 -0
  133. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/exceptions.py +0 -0
  134. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
  135. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
  136. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
  137. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/factory.py +0 -0
  138. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
  139. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
  140. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/history.py +0 -0
  141. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
  142. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
  143. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm/support.py +0 -0
  144. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
  145. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
  146. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
  147. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
  148. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
  149. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
  150. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
  151. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
  152. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
  153. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/registry.py +0 -0
  154. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
  155. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
  156. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/infrastructure/__init__.py +0 -0
  157. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
  158. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
  159. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/__init__.py +0 -0
  160. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/calculation.py +0 -0
  161. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/database.py +0 -0
  162. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/existing_model.py +0 -0
  163. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/read_only.py +0 -0
  164. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
  165. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/interfaces/request.py +0 -0
  166. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/manifests/__init__.py +0 -0
  167. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/manifests/capability_builder.py +0 -0
  168. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
  169. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/manifests/capability_models.py +0 -0
  170. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/orm_interface.py +0 -0
  171. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/requests.py +0 -0
  172. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/utils/__init__.py +0 -0
  173. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
  174. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/utils/errors.py +0 -0
  175. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/interface/utils/models.py +0 -0
  176. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/logging.py +0 -0
  177. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/chat_cleanup.py +0 -0
  178. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
  179. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/graphql_warmup.py +0 -0
  180. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
  181. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/search_index.py +0 -0
  182. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/search_reconcile.py +0 -0
  183. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
  184. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/shell.py +0 -0
  185. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
  186. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
  187. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/manager/__init__.py +0 -0
  188. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/manager/general_manager.py +0 -0
  189. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/manager/group_manager.py +0 -0
  190. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/manager/input.py +0 -0
  191. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/manager/meta.py +0 -0
  192. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/measurement/__init__.py +0 -0
  193. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/measurement/measurement.py +0 -0
  194. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/measurement/measurement_field.py +0 -0
  195. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/metrics/__init__.py +0 -0
  196. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/metrics/graphql.py +0 -0
  197. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0001_initial.py +0 -0
  198. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
  199. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
  200. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
  201. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0004_search_index_state.py +0 -0
  202. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
  203. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
  204. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0007_upload_intent.py +0 -0
  205. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
  206. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
  207. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/migrations/__init__.py +0 -0
  208. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/models.py +0 -0
  209. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/__init__.py +0 -0
  210. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/audit.py +0 -0
  211. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/base_permission.py +0 -0
  212. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/graphql_capabilities.py +0 -0
  213. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/manager_based_permission.py +0 -0
  214. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/mutation_permission.py +0 -0
  215. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/permission_checks.py +0 -0
  216. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/permission_data_manager.py +0 -0
  217. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/permission/utils.py +0 -0
  218. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/public_api_registry.py +0 -0
  219. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/py.typed +0 -0
  220. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/rule/__init__.py +0 -0
  221. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/rule/handler.py +0 -0
  222. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/rule/rule.py +0 -0
  223. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/__init__.py +0 -0
  224. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/async_tasks.py +0 -0
  225. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backend.py +0 -0
  226. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backend_registry.py +0 -0
  227. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backends/__init__.py +0 -0
  228. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backends/dev.py +0 -0
  229. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backends/meilisearch.py +0 -0
  230. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backends/opensearch.py +0 -0
  231. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/backends/typesense.py +0 -0
  232. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/config.py +0 -0
  233. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/indexer.py +0 -0
  234. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/models.py +0 -0
  235. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/reconciliation.py +0 -0
  236. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/registry.py +0 -0
  237. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/tasks.py +0 -0
  238. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/search/utils.py +0 -0
  239. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/seeding/__init__.py +0 -0
  240. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/seeding/manager_landscape.py +0 -0
  241. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/__init__.py +0 -0
  242. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/adapters.py +0 -0
  243. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/checks.py +0 -0
  244. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/config.py +0 -0
  245. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/errors.py +0 -0
  246. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/finalization.py +0 -0
  247. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/graphql.py +0 -0
  248. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/graphql_types.py +0 -0
  249. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/metrics.py +0 -0
  250. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/models.py +0 -0
  251. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/public.py +0 -0
  252. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/s3.py +0 -0
  253. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/services.py +0 -0
  254. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/tokens.py +0 -0
  255. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/types.py +0 -0
  256. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/urls.py +0 -0
  257. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/uploads/views.py +0 -0
  258. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/__init__.py +0 -0
  259. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/args_to_kwargs.py +0 -0
  260. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/filter_parser.py +0 -0
  261. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/format_string.py +0 -0
  262. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/json_encoder.py +0 -0
  263. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/make_cache_key.py +0 -0
  264. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/none_to_zero.py +0 -0
  265. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/path_mapping.py +0 -0
  266. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/public_api.py +0 -0
  267. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/testing.py +0 -0
  268. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/utils/type_checks.py +0 -0
  269. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/__init__.py +0 -0
  270. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/actions.py +0 -0
  271. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/backend_registry.py +0 -0
  272. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/backends/__init__.py +0 -0
  273. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/backends/celery.py +0 -0
  274. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/backends/local.py +0 -0
  275. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/backends/n8n.py +0 -0
  276. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/config.py +0 -0
  277. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/engine.py +0 -0
  278. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/event_registry.py +0 -0
  279. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/events.py +0 -0
  280. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/models.py +0 -0
  281. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/signal_bridge.py +0 -0
  282. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/tasks.py +0 -0
  283. {generalmanager-0.62.2 → generalmanager-0.62.3}/src/general_manager/workflow/telemetry.py +0 -0
  284. {generalmanager-0.62.2 → generalmanager-0.62.3}/tests/test_settings.py +0 -0
  285. {generalmanager-0.62.2 → generalmanager-0.62.3}/tests/test_urls.py +0 -0
  286. {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.2
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.2"
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.2
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
- else:
74
- os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tests.test_settings")
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"]