corvic-engine 0.3.0rc59__tar.gz → 0.3.0rc61__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 (221) hide show
  1. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/Cargo.lock +10 -10
  2. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/Cargo.toml +1 -1
  3. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/PKG-INFO +1 -1
  4. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/pyproject.toml +2 -2
  5. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/__init__.py +0 -3
  6. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_base_model.py +9 -6
  7. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_proto_orm_convert.py +0 -89
  8. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/orm/__init__.py +0 -74
  9. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/orm/base.py +1 -1
  10. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/_embedder.py +2 -0
  11. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/in_memory_executor.py +1 -0
  12. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/op_graph_executor.py +3 -2
  13. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/table/table.py +1 -0
  14. corvic_engine-0.3.0rc61/python/corvic_generated/model/v1alpha/models_pb2.py +51 -0
  15. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/model/v1alpha/models_pb2.pyi +0 -17
  16. corvic_engine-0.3.0rc59/python/corvic/model/_agent.py +0 -154
  17. corvic_engine-0.3.0rc59/python/corvic_generated/model/v1alpha/models_pb2.py +0 -54
  18. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/LICENSE +0 -0
  19. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/README.md +0 -0
  20. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/Cargo.toml +0 -0
  21. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/expression_pb2.py +0 -0
  22. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/expression_pb2.pyi +0 -0
  23. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/expression_pb2_grpc.py +0 -0
  24. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/expression_pb2_grpc.pyi +0 -0
  25. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/priv/private_pb2.py +0 -0
  26. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/priv/private_pb2.pyi +0 -0
  27. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/priv/private_pb2_grpc.py +0 -0
  28. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/priv/private_pb2_grpc.pyi +0 -0
  29. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/validate_pb2.py +0 -0
  30. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/validate_pb2.pyi +0 -0
  31. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/validate_pb2_grpc.py +0 -0
  32. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/buf/validate/validate_pb2_grpc.pyi +0 -0
  33. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/context/__init__.py +0 -0
  34. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/context/py.typed +0 -0
  35. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/embed/__init__.py +0 -0
  36. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/embed/node2vec.py +0 -0
  37. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/embed/py.typed +0 -0
  38. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/embedding_metric/__init__.py +0 -0
  39. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/embedding_metric/embeddings.py +0 -0
  40. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/embedding_metric/py.typed +0 -0
  41. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/engine/__init__.py +0 -0
  42. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/engine/_native.pyi +0 -0
  43. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/engine/py.typed +0 -0
  44. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_completion_model.py +0 -0
  45. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_defaults.py +0 -0
  46. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_errors.py +0 -0
  47. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_feature_type.py +0 -0
  48. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_feature_view.py +0 -0
  49. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_pipeline.py +0 -0
  50. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_resource.py +0 -0
  51. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_room.py +0 -0
  52. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_source.py +0 -0
  53. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/_space.py +0 -0
  54. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/model/py.typed +0 -0
  55. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/__init__.py +0 -0
  56. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/_schema.py +0 -0
  57. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/_transformations.py +0 -0
  58. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/aggregation.py +0 -0
  59. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/encoders.py +0 -0
  60. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/errors.py +0 -0
  61. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/feature_types.py +0 -0
  62. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/ops.py +0 -0
  63. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/py.typed +0 -0
  64. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/row_filters/__init__.py +0 -0
  65. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/row_filters/_jsonlogic.py +0 -0
  66. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/row_filters/_row_filters.py +0 -0
  67. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/op_graph/sample_strategy.py +0 -0
  68. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/orm/_proto_columns.py +0 -0
  69. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/orm/errors.py +0 -0
  70. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/orm/func/__init__.py +0 -0
  71. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/orm/func/utc_func.py +0 -0
  72. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/orm/func/uuid_func.py +0 -0
  73. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/orm/ids.py +0 -0
  74. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/orm/keys.py +0 -0
  75. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/orm/mixins.py +0 -0
  76. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/orm/py.typed +0 -0
  77. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/pa_scalar/__init__.py +0 -0
  78. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/pa_scalar/_const.py +0 -0
  79. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/pa_scalar/_from_value.py +0 -0
  80. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/pa_scalar/_temporal.py +0 -0
  81. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/pa_scalar/_to_value.py +0 -0
  82. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/pa_scalar/_types.py +0 -0
  83. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/pa_scalar/py.typed +0 -0
  84. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/proto_wrapper/__init__.py +0 -0
  85. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/proto_wrapper/_errors.py +0 -0
  86. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/proto_wrapper/_wrappers.py +0 -0
  87. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/proto_wrapper/py.typed +0 -0
  88. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/result/__init__.py +0 -0
  89. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/result/py.typed +0 -0
  90. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/sql/__init__.py +0 -0
  91. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/sql/parse_ops.py +0 -0
  92. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/sql/py.typed +0 -0
  93. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/__init__.py +0 -0
  94. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/_dimension_reduction.py +0 -0
  95. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/_image_embedder.py +0 -0
  96. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/_planner.py +0 -0
  97. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/_text_embedder.py +0 -0
  98. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/client.py +0 -0
  99. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/py.typed +0 -0
  100. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/staging.py +0 -0
  101. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system/storage.py +0 -0
  102. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system_sqlite/__init__.py +0 -0
  103. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system_sqlite/client.py +0 -0
  104. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system_sqlite/fs_blob_store.py +0 -0
  105. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system_sqlite/py.typed +0 -0
  106. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system_sqlite/rdbms_blob_store.py +0 -0
  107. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/system_sqlite/staging.py +0 -0
  108. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/table/__init__.py +0 -0
  109. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/table/py.typed +0 -0
  110. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/version/__init__.py +0 -0
  111. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/version/py.typed +0 -0
  112. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/well_known_types/__init__.py +0 -0
  113. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic/well_known_types/py.typed +0 -0
  114. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/__init__.py +0 -0
  115. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/algorithm/__init__.py +0 -0
  116. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/algorithm/graph/__init__.py +0 -0
  117. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/algorithm/graph/v1/__init__.py +0 -0
  118. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/algorithm/graph/v1/graph_pb2.py +0 -0
  119. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/algorithm/graph/v1/graph_pb2.pyi +0 -0
  120. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.py +0 -0
  121. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.pyi +0 -0
  122. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/embedding/__init__.py +0 -0
  123. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/embedding/v1/__init__.py +0 -0
  124. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/embedding/v1/models_pb2.py +0 -0
  125. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/embedding/v1/models_pb2.pyi +0 -0
  126. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/embedding/v1/models_pb2_grpc.py +0 -0
  127. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/embedding/v1/models_pb2_grpc.pyi +0 -0
  128. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/__init__.py +0 -0
  129. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v1/__init__.py +0 -0
  130. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v1/experiment_pb2.py +0 -0
  131. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v1/experiment_pb2.pyi +0 -0
  132. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v1/experiment_pb2_grpc.py +0 -0
  133. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v1/experiment_pb2_grpc.pyi +0 -0
  134. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v1/space_pb2.py +0 -0
  135. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v1/space_pb2.pyi +0 -0
  136. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v1/space_pb2_grpc.py +0 -0
  137. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v1/space_pb2_grpc.pyi +0 -0
  138. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v2/__init__.py +0 -0
  139. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v2/feature_view_pb2.py +0 -0
  140. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v2/feature_view_pb2.pyi +0 -0
  141. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.py +0 -0
  142. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.pyi +0 -0
  143. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v2/space_pb2.py +0 -0
  144. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v2/space_pb2.pyi +0 -0
  145. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v2/space_pb2_grpc.py +0 -0
  146. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/feature/v2/space_pb2_grpc.pyi +0 -0
  147. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/__init__.py +0 -0
  148. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v1/__init__.py +0 -0
  149. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v1/service_pb2.py +0 -0
  150. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v1/service_pb2.pyi +0 -0
  151. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v1/service_pb2_grpc.py +0 -0
  152. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v1/service_pb2_grpc.pyi +0 -0
  153. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/__init__.py +0 -0
  154. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/pipeline_pb2.py +0 -0
  155. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/pipeline_pb2.pyi +0 -0
  156. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.py +0 -0
  157. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.pyi +0 -0
  158. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/quick_mode_pb2.py +0 -0
  159. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/quick_mode_pb2.pyi +0 -0
  160. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.py +0 -0
  161. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.pyi +0 -0
  162. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/resource_pb2.py +0 -0
  163. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/resource_pb2.pyi +0 -0
  164. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/resource_pb2_grpc.py +0 -0
  165. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/resource_pb2_grpc.pyi +0 -0
  166. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/room_pb2.py +0 -0
  167. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/room_pb2.pyi +0 -0
  168. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/room_pb2_grpc.py +0 -0
  169. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/room_pb2_grpc.pyi +0 -0
  170. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/source_pb2.py +0 -0
  171. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/source_pb2.pyi +0 -0
  172. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/source_pb2_grpc.py +0 -0
  173. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/source_pb2_grpc.pyi +0 -0
  174. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/table_pb2.py +0 -0
  175. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/table_pb2.pyi +0 -0
  176. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/table_pb2_grpc.py +0 -0
  177. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/ingest/v2/table_pb2_grpc.pyi +0 -0
  178. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/model/__init__.py +0 -0
  179. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/model/v1alpha/__init__.py +0 -0
  180. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/model/v1alpha/models_pb2_grpc.py +0 -0
  181. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/model/v1alpha/models_pb2_grpc.pyi +0 -0
  182. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/__init__.py +0 -0
  183. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/__init__.py +0 -0
  184. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/agent_pb2.py +0 -0
  185. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/agent_pb2.pyi +0 -0
  186. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/agent_pb2_grpc.py +0 -0
  187. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/agent_pb2_grpc.pyi +0 -0
  188. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/common_pb2.py +0 -0
  189. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/common_pb2.pyi +0 -0
  190. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/common_pb2_grpc.py +0 -0
  191. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/common_pb2_grpc.pyi +0 -0
  192. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/completion_model_pb2.py +0 -0
  193. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/completion_model_pb2.pyi +0 -0
  194. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.py +0 -0
  195. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.pyi +0 -0
  196. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/feature_view_pb2.py +0 -0
  197. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/feature_view_pb2.pyi +0 -0
  198. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.py +0 -0
  199. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.pyi +0 -0
  200. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/pipeline_pb2.py +0 -0
  201. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/pipeline_pb2.pyi +0 -0
  202. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.py +0 -0
  203. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.pyi +0 -0
  204. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/space_pb2.py +0 -0
  205. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/space_pb2.pyi +0 -0
  206. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/space_pb2_grpc.py +0 -0
  207. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/space_pb2_grpc.pyi +0 -0
  208. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/table_pb2.py +0 -0
  209. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/table_pb2.pyi +0 -0
  210. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/table_pb2_grpc.py +0 -0
  211. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/orm/v1/table_pb2_grpc.pyi +0 -0
  212. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/status/__init__.py +0 -0
  213. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/status/v1/__init__.py +0 -0
  214. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/status/v1/event_pb2.py +0 -0
  215. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/status/v1/event_pb2.pyi +0 -0
  216. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/status/v1/event_pb2_grpc.py +0 -0
  217. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/status/v1/event_pb2_grpc.pyi +0 -0
  218. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/status/v1/service_pb2.py +0 -0
  219. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/status/v1/service_pb2.pyi +0 -0
  220. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/status/v1/service_pb2_grpc.py +0 -0
  221. {corvic_engine-0.3.0rc59 → corvic_engine-0.3.0rc61}/python/corvic_generated/status/v1/service_pb2_grpc.pyi +0 -0
@@ -22,7 +22,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
22
22
 
23
23
  [[package]]
24
24
  name = "corvic-engine"
25
- version = "0.3.0-rc.59"
25
+ version = "0.3.0-rc.61"
26
26
  dependencies = [
27
27
  "numpy",
28
28
  "pyo3",
@@ -63,7 +63,7 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
63
63
 
64
64
  [[package]]
65
65
  name = "engine-walk"
66
- version = "0.3.0-rc.59"
66
+ version = "0.3.0-rc.61"
67
67
  dependencies = [
68
68
  "version_check",
69
69
  ]
@@ -82,9 +82,9 @@ checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd"
82
82
 
83
83
  [[package]]
84
84
  name = "libc"
85
- version = "0.2.170"
85
+ version = "0.2.171"
86
86
  source = "registry+https://github.com/rust-lang/crates.io-index"
87
- checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828"
87
+ checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6"
88
88
 
89
89
  [[package]]
90
90
  name = "lock_api"
@@ -172,9 +172,9 @@ dependencies = [
172
172
 
173
173
  [[package]]
174
174
  name = "once_cell"
175
- version = "1.20.3"
175
+ version = "1.21.3"
176
176
  source = "registry+https://github.com/rust-lang/crates.io-index"
177
- checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e"
177
+ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
178
178
 
179
179
  [[package]]
180
180
  name = "parking_lot"
@@ -279,9 +279,9 @@ dependencies = [
279
279
 
280
280
  [[package]]
281
281
  name = "quote"
282
- version = "1.0.39"
282
+ version = "1.0.40"
283
283
  source = "registry+https://github.com/rust-lang/crates.io-index"
284
- checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801"
284
+ checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
285
285
  dependencies = [
286
286
  "proc-macro2",
287
287
  ]
@@ -341,9 +341,9 @@ checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd"
341
341
 
342
342
  [[package]]
343
343
  name = "syn"
344
- version = "2.0.99"
344
+ version = "2.0.100"
345
345
  source = "registry+https://github.com/rust-lang/crates.io-index"
346
- checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2"
346
+ checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0"
347
347
  dependencies = [
348
348
  "proc-macro2",
349
349
  "quote",
@@ -3,7 +3,7 @@ resolver = "2"
3
3
  members = ["python"]
4
4
 
5
5
  [workspace.package]
6
- version = "0.3.0-rc.59"
6
+ version = "0.3.0-rc.61"
7
7
  edition = "2021"
8
8
  publish = false
9
9
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: corvic-engine
3
- Version: 0.3.0rc59
3
+ Version: 0.3.0rc61
4
4
  Classifier: Environment :: Console
5
5
  Classifier: License :: Other/Proprietary License
6
6
  Classifier: Programming Language :: Python :: Implementation :: CPython
@@ -20,7 +20,7 @@ authors = [
20
20
  ]
21
21
  readme = "README.md"
22
22
  description = "Seamless embedding generation and retrieval."
23
- version = "0.3.0-rc.59" # sync this with tool.poetry.version below
23
+ version = "0.3.0-rc.61" # sync this with tool.poetry.version below
24
24
 
25
25
  # TODO(ddn): Pull dependencies from tool.poetry.dependencies. We use maturin as
26
26
  # the build system but poetry for the development environment.
@@ -74,7 +74,7 @@ packages = [
74
74
  ]
75
75
  description = ""
76
76
  authors = []
77
- version = "0.3.0-rc.59"
77
+ version = "0.3.0-rc.61"
78
78
 
79
79
  [tool.poetry.scripts]
80
80
  check = "corvic_check.cli:main"
@@ -1,7 +1,6 @@
1
1
  """Data modeling objects for creating corvic pipelines."""
2
2
 
3
3
  import corvic.model._feature_type as feature_type
4
- from corvic.model._agent import Agent, AgentID
5
4
  from corvic.model._base_model import (
6
5
  BaseModel,
7
6
  BelongsToOrgModel,
@@ -71,8 +70,6 @@ from corvic.model._space import (
71
70
  FeatureType = feature_type.FeatureType
72
71
 
73
72
  __all__ = [
74
- "Agent",
75
- "AgentID",
76
73
  "BaseModel",
77
74
  "BelongsToOrgModel",
78
75
  "BelongsToRoomModel",
@@ -215,12 +215,15 @@ class BaseModel(Generic[ID, ProtoObj, OrmObj], UsesOrmID[ID, ProtoObj]):
215
215
  with orm.Session(
216
216
  self.client.sa_engine, expire_on_commit=False, autoflush=False
217
217
  ) as session:
218
- match self.delete_by_ids([self.id], session):
219
- case InvalidArgumentError() as err:
220
- return err
221
- case Ok(None):
222
- pass
223
- session.commit()
218
+ try:
219
+ match self.delete_by_ids([self.id], session):
220
+ case InvalidArgumentError() as err:
221
+ return err
222
+ case Ok(None):
223
+ pass
224
+ session.commit()
225
+ except sa.exc.IntegrityError as exc:
226
+ return InvalidArgumentError.from_(exc)
224
227
 
225
228
  new_proto_self = copy.copy(self.proto_self)
226
229
  new_proto_self.id = ""
@@ -121,17 +121,6 @@ def source_orm_to_proto(source_orm: orm.Source) -> models_pb2.Source:
121
121
  )
122
122
 
123
123
 
124
- def agent_orm_to_proto(agent_orm: orm.Agent) -> models_pb2.Agent:
125
- return models_pb2.Agent(
126
- id=str(agent_orm.id),
127
- name=agent_orm.name,
128
- room_id=str(agent_orm.room_id),
129
- agent_parameters=agent_orm.parameters,
130
- org_id=str(agent_orm.org_id),
131
- created_at=timestamp_orm_to_proto(agent_orm.created_at),
132
- )
133
-
134
-
135
124
  def feature_view_source_orm_to_proto(
136
125
  feature_view_source_orm: orm.FeatureViewSource,
137
126
  ) -> models_pb2.FeatureViewSource:
@@ -401,62 +390,6 @@ def source_proto_to_orm(
401
390
  return add_orm_room_mixin_to_session(orm_obj, proto_obj, orm.SourceID, session)
402
391
 
403
392
 
404
- def _update_agent_associations(
405
- agent: orm.Agent,
406
- session: sa_orm.Session,
407
- ) -> list[orm.SpaceID]:
408
- associated_space_ids = list[orm.SpaceID]()
409
- agent_id = agent.id
410
- agent_parameters = agent.parameters
411
- if not agent_id or not agent_parameters:
412
- return associated_space_ids
413
- for (
414
- raw_space_id,
415
- instruction,
416
- ) in agent_parameters.orchestrator_parameters.space_instructions.items():
417
- space_id = orm.SpaceID(raw_space_id)
418
- space_run_id = (
419
- orm.SpaceRunID(instruction.space_run_id)
420
- if instruction.space_run_id
421
- else None
422
- )
423
- associated_space_ids.append(space_id)
424
- session.merge(
425
- orm.AgentSpaceAssociation(
426
- room_id=agent.room_id,
427
- agent_id=agent_id,
428
- space_id=space_id,
429
- space_run_id=space_run_id,
430
- )
431
- )
432
- return associated_space_ids
433
-
434
-
435
- def agent_proto_to_orm(
436
- proto_obj: models_pb2.Agent, session: sa_orm.Session
437
- ) -> Ok[orm.Agent] | orm.InvalidORMIdentifierError | InvalidArgumentError:
438
- orm_obj = orm.Agent(
439
- name=proto_obj.name,
440
- parameters=proto_obj.agent_parameters,
441
- )
442
- match add_orm_room_mixin_to_session(orm_obj, proto_obj, orm.AgentID, session):
443
- case Ok(agent):
444
- pass
445
- case orm.InvalidORMIdentifierError() as err:
446
- return err
447
- session.flush()
448
-
449
- if not agent.id:
450
- return InvalidArgumentError("failed to add agent to session")
451
- associated_space_ids = _update_agent_associations(agent, session)
452
- session.execute(
453
- sa.delete(orm.AgentSpaceAssociation)
454
- .where(orm.AgentSpaceAssociation.agent_id == agent.id)
455
- .where(orm.AgentSpaceAssociation.space_id.not_in(associated_space_ids))
456
- )
457
- return Ok(agent)
458
-
459
-
460
393
  def space_proto_to_orm(
461
394
  proto_obj: models_pb2.Space, session: sa_orm.Session
462
395
  ) -> Ok[orm.Space] | orm.InvalidORMIdentifierError | InvalidArgumentError:
@@ -664,18 +597,6 @@ def resource_delete_orms(
664
597
  return Ok(None)
665
598
 
666
599
 
667
- def agent_delete_orms(
668
- ids: Sequence[orm.AgentID], session: orm.Session
669
- ) -> Ok[None] | InvalidArgumentError:
670
- session.execute(
671
- sa.delete(orm.AgentSpaceAssociation).where(
672
- orm.AgentSpaceAssociation.agent_id.in_(ids)
673
- )
674
- )
675
- session.execute(sa.delete(orm.Agent).where(orm.Agent.id.in_(ids)))
676
- return Ok(None)
677
-
678
-
679
600
  def feature_view_source_delete_orms(
680
601
  ids: Sequence[orm.FeatureViewSourceID], session: orm.Session
681
602
  ) -> Ok[None] | InvalidArgumentError:
@@ -722,16 +643,6 @@ def feature_view_delete_orms(
722
643
  def space_delete_orms(
723
644
  ids: Sequence[orm.SpaceID], session: orm.Session
724
645
  ) -> Ok[None] | InvalidArgumentError:
725
- existing_agents = list(
726
- session.scalars(
727
- sa.select(orm.AgentSpaceAssociation)
728
- .where(orm.AgentSpaceAssociation.space_id.in_(ids))
729
- .limit(1)
730
- )
731
- )
732
- if existing_agents:
733
- return InvalidArgumentError("cannot delete a space that still has agents")
734
-
735
646
  session.execute(sa.delete(orm.Space).where(orm.Space.id.in_(ids)))
736
647
  return Ok(None)
737
648
 
@@ -48,7 +48,6 @@ from corvic.orm.mixins import (
48
48
  live_unique_constraint,
49
49
  )
50
50
  from corvic_generated.orm.v1 import (
51
- agent_pb2,
52
51
  common_pb2,
53
52
  completion_model_pb2,
54
53
  feature_view_pb2,
@@ -292,77 +291,6 @@ class Space(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
292
291
  return self.name
293
292
 
294
293
 
295
- class SpaceRun(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
296
- """A Space run."""
297
-
298
- __tablename__ = "space_run"
299
-
300
- id: sa_orm.Mapped[SpaceRunID | None] = primary_key_identity_column()
301
- table_op_graph: sa_orm.Mapped[table_pb2.TableComputeOp] = sa_orm.mapped_column(
302
- default_factory=table_pb2.TableComputeOp
303
- )
304
- space_id: sa_orm.Mapped[SpaceID] = sa_orm.mapped_column(
305
- ForeignKey(Space).make(ondelete="CASCADE"), nullable=False
306
- )
307
- space: sa_orm.Mapped[Space] = sa_orm.relationship(init=False, viewonly=True)
308
- result_url: sa_orm.Mapped[str | None] = sa_orm.mapped_column(sa.Text, default=None)
309
- coordinates_urls: sa_orm.Mapped[common_pb2.BlobUrlList | None] = (
310
- sa_orm.mapped_column(default=None)
311
- )
312
- latest_event: sa_orm.Mapped[event_pb2.Event | None] = sa_orm.mapped_column(
313
- default=None, nullable=True
314
- )
315
- vector_urls: sa_orm.Mapped[common_pb2.BlobUrlList | None] = sa_orm.mapped_column(
316
- default=None
317
- )
318
-
319
- embedding_metrics: sa_orm.Mapped[common_pb2.EmbeddingMetrics | None] = (
320
- sa_orm.mapped_column(default=None)
321
- )
322
- insight_tools: sa_orm.Mapped[table_pb2.NamedTables | None] = sa_orm.mapped_column(
323
- default=None
324
- )
325
- combine_embeddings_from: sa_orm.Mapped[SpaceRunID | None] = sa_orm.mapped_column(
326
- sa.ForeignKey("space_run.id"), nullable=True, default=None
327
- )
328
-
329
-
330
- class Agent(SoftDeleteMixin, BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
331
- """An Agent."""
332
-
333
- __tablename__ = "agent"
334
- __table_args__ = (live_unique_constraint("name", "room_id"),)
335
-
336
- id: sa_orm.Mapped[AgentID | None] = primary_key_identity_column()
337
- name: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default=None)
338
-
339
- @property
340
- def agent_key(self):
341
- return self.name
342
-
343
- parameters: sa_orm.Mapped[agent_pb2.AgentParameters | None] = sa_orm.mapped_column(
344
- default=None
345
- )
346
-
347
- space_associations: sa_orm.Mapped[list[AgentSpaceAssociation]] = (
348
- sa_orm.relationship(default_factory=list, init=False, viewonly=True)
349
- )
350
-
351
-
352
- class AgentSpaceAssociation(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
353
- __tablename__ = "agent_space_association"
354
-
355
- space_run_id: sa_orm.Mapped[SpaceRunID | None] = sa_orm.mapped_column(
356
- ForeignKey(SpaceRun).make()
357
- )
358
- agent_id: sa_orm.Mapped[AgentID] = primary_key_foreign_column(
359
- ForeignKey(Agent).make(ondelete="CASCADE")
360
- )
361
- space_id: sa_orm.Mapped[SpaceID] = primary_key_foreign_column(
362
- ForeignKey(Space).make()
363
- )
364
-
365
-
366
294
  class CompletionModel(SoftDeleteMixin, BelongsToOrgMixin, Base, kw_only=True):
367
295
  """A customer's custom completion model definition."""
368
296
 
@@ -412,7 +340,6 @@ ID = (
412
340
 
413
341
 
414
342
  __all__ = [
415
- "Agent",
416
343
  "AgentID",
417
344
  "AgentMessageID",
418
345
  "Base",
@@ -446,7 +373,6 @@ __all__ = [
446
373
  "Space",
447
374
  "SpaceID",
448
375
  "SpaceParametersID",
449
- "SpaceRun",
450
376
  "SpaceRunID",
451
377
  "UserMessageID",
452
378
  "primary_key_foreign_column",
@@ -167,7 +167,7 @@ class Base(sa_orm.MappedAsDataclass, sa_orm.DeclarativeBase):
167
167
  @updated_at.inplace.expression
168
168
  @classmethod
169
169
  def _updated_at_expression(cls):
170
- return cls._created_at
170
+ return cls._updated_at
171
171
 
172
172
 
173
173
  class OrgBase(Base):
@@ -6,6 +6,7 @@ import numpy as np
6
6
  import polars as pl
7
7
  from typing_extensions import Protocol
8
8
 
9
+ from corvic import orm
9
10
  from corvic.result import InternalError, InvalidArgumentError, Ok
10
11
 
11
12
 
@@ -18,6 +19,7 @@ class EmbedTextContext:
18
19
  tokenizer_name: str
19
20
  expected_vector_length: int
20
21
  expected_coordinate_bitwidth: Literal[32, 64]
22
+ room_id: orm.RoomID
21
23
 
22
24
 
23
25
  @dataclasses.dataclass
@@ -807,6 +807,7 @@ class InMemoryExecutor(OpGraphExecutor):
807
807
  tokenizer_name=op.tokenizer_name,
808
808
  expected_vector_length=op.expected_vector_length,
809
809
  expected_coordinate_bitwidth=op.expected_coordinate_bitwidth,
810
+ room_id=context.exec_context.room_id,
810
811
  )
811
812
  match self._text_embedder.embed(embed_context):
812
813
  case Ok(result):
@@ -8,7 +8,7 @@ from typing import Any, Protocol
8
8
 
9
9
  import pyarrow as pa
10
10
 
11
- from corvic import op_graph
11
+ from corvic import op_graph, orm
12
12
  from corvic.result import (
13
13
  InternalError,
14
14
  InvalidArgumentError,
@@ -55,9 +55,10 @@ class ExecutionContext:
55
55
  """Description of the computation to be completed."""
56
56
 
57
57
  tables_to_compute: list[TableComputeContext]
58
+ room_id: orm.RoomID
58
59
  """A list of tables that the caller wants in addition to table_to_compute.
59
60
 
60
- This has advantages over multimple invocations of OpGraphExecutor when those
61
+ This has advantages over multiple invocations of OpGraphExecutor when those
61
62
  additional tables would be computed to compute tables_to_compute anyway; i.e.,
62
63
  they are nodes in the tables_to_compute op graph.
63
64
  """
@@ -456,6 +456,7 @@ class Table:
456
456
  ):
457
457
  """Convert every row to a dictionary of Python-native values."""
458
458
  context = ExecutionContext(
459
+ room_id=room_id,
459
460
  tables_to_compute=[
460
461
  TableComputeContext(
461
462
  self.op_graph,
@@ -0,0 +1,51 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: corvic/model/v1alpha/models.proto
4
+ # Protobuf Python Version: 4.25.3
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from corvic_generated.orm.v1 import completion_model_pb2 as corvic_dot_orm_dot_v1_dot_completion__model__pb2
16
+ from corvic_generated.orm.v1 import feature_view_pb2 as corvic_dot_orm_dot_v1_dot_feature__view__pb2
17
+ from corvic_generated.orm.v1 import pipeline_pb2 as corvic_dot_orm_dot_v1_dot_pipeline__pb2
18
+ from corvic_generated.orm.v1 import space_pb2 as corvic_dot_orm_dot_v1_dot_space__pb2
19
+ from corvic_generated.orm.v1 import table_pb2 as corvic_dot_orm_dot_v1_dot_table__pb2
20
+ from corvic_generated.status.v1 import event_pb2 as corvic_dot_status_dot_v1_dot_event__pb2
21
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
22
+
23
+
24
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!corvic/model/v1alpha/models.proto\x12\x14\x63orvic.model.v1alpha\x1a$corvic/orm/v1/completion_model.proto\x1a corvic/orm/v1/feature_view.proto\x1a\x1c\x63orvic/orm/v1/pipeline.proto\x1a\x19\x63orvic/orm/v1/space.proto\x1a\x19\x63orvic/orm/v1/table.proto\x1a\x1c\x63orvic/status/v1/event.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x90\x01\n\x04Room\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x15\n\x06org_id\x18\x03 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\xd8\x03\n\x08Resource\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmime_type\x18\x04 \x01(\tR\x08mimeType\x12\x10\n\x03url\x18\x05 \x01(\tR\x03url\x12\x12\n\x04size\x18\x06 \x01(\x04R\x04size\x12\x10\n\x03md5\x18\x07 \x01(\tR\x03md5\x12#\n\roriginal_path\x18\x08 \x01(\tR\x0coriginalPath\x12\x17\n\x07room_id\x18\t \x01(\tR\x06roomId\x12\x15\n\x06org_id\x18\x0b \x01(\tR\x05orgId\x12\x1f\n\x0bpipeline_id\x18\r \x01(\tR\npipelineId\x12.\n\x13pipeline_input_name\x18\x0f \x01(\tR\x11pipelineInputName\x12<\n\rrecent_events\x18\x0e \x03(\x0b\x32\x17.corvic.status.v1.EventR\x0crecentEvents\x12>\n\ncreated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\xfc\x02\n\x06Source\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x43\n\x0etable_op_graph\x18\x03 \x01(\x0b\x32\x1d.corvic.orm.v1.TableComputeOpR\x0ctableOpGraph\x12\x17\n\x07room_id\x18\x04 \x01(\tR\x06roomId\x12\x15\n\x06org_id\x18\x06 \x01(\tR\x05orgId\x12\x1f\n\x0bpipeline_id\x18\x08 \x01(\tR\npipelineId\x12>\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x12Q\n\x13prop_table_op_graph\x18\t \x01(\x0b\x32\x1d.corvic.orm.v1.TableComputeOpH\x01R\x10propTableOpGraph\x88\x01\x01\x42\r\n\x0b_created_atB\x16\n\x14_prop_table_op_graph\"\xe9\x03\n\x08Pipeline\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\t \x01(\tR\x0b\x64\x65scription\x12\x17\n\x07room_id\x18\x03 \x01(\tR\x06roomId\x12X\n\x0esource_outputs\x18\x05 \x03(\x0b\x32\x31.corvic.model.v1alpha.Pipeline.SourceOutputsEntryR\rsourceOutputs\x12^\n\x17pipeline_transformation\x18\x06 \x01(\x0b\x32%.corvic.orm.v1.PipelineTransformationR\x16pipelineTransformation\x12\x15\n\x06org_id\x18\x07 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x1a^\n\x12SourceOutputsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x32\n\x05value\x18\x02 \x01(\x0b\x32\x1c.corvic.model.v1alpha.SourceR\x05value:\x02\x38\x01\x42\r\n\x0b_created_at\"\xca\x02\n\x11\x46\x65\x61tureViewSource\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x34\n\x06source\x18\x02 \x01(\x0b\x32\x1c.corvic.model.v1alpha.SourceR\x06source\x12\x43\n\x0etable_op_graph\x18\x03 \x01(\x0b\x32\x1d.corvic.orm.v1.TableComputeOpR\x0ctableOpGraph\x12+\n\x11\x64rop_disconnected\x18\x04 \x01(\x08R\x10\x64ropDisconnected\x12\x15\n\x06org_id\x18\x05 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x12\x17\n\x07room_id\x18\x07 \x01(\tR\x06roomIdB\r\n\x0b_created_at\"\x9c\x03\n\x0b\x46\x65\x61tureView\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x17\n\x07room_id\x18\x04 \x01(\tR\x06roomId\x12P\n\x13\x66\x65\x61ture_view_output\x18\x05 \x01(\x0b\x32 .corvic.orm.v1.FeatureViewOutputR\x11\x66\x65\x61tureViewOutput\x12Y\n\x14\x66\x65\x61ture_view_sources\x18\x06 \x03(\x0b\x32\'.corvic.model.v1alpha.FeatureViewSourceR\x12\x66\x65\x61tureViewSources\x12\x1b\n\tspace_ids\x18\x07 \x03(\tR\x08spaceIds\x12\x15\n\x06org_id\x18\x08 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\xfa\x02\n\x05Space\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x17\n\x07room_id\x18\x04 \x01(\tR\x06roomId\x12I\n\x10space_parameters\x18\x05 \x01(\x0b\x32\x1e.corvic.orm.v1.SpaceParametersR\x0fspaceParameters\x12\x44\n\x0c\x66\x65\x61ture_view\x18\x06 \x01(\x0b\x32!.corvic.model.v1alpha.FeatureViewR\x0b\x66\x65\x61tureView\x12\x1b\n\tauto_sync\x18\t \x01(\x08R\x08\x61utoSync\x12\x15\n\x06org_id\x18\x07 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\x97\x04\n\x0f\x43ompletionModel\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x15\n\x06org_id\x18\x04 \x01(\tR\x05orgId\x12H\n\nparameters\x18\x05 \x01(\x0b\x32(.corvic.orm.v1.CompletionModelParametersR\nparameters\x12$\n\x0esecret_api_key\x18\x06 \x01(\tR\x0csecretApiKey\x12Q\n\x14last_validation_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x12lastValidationTime\x88\x01\x01\x12]\n\x1alast_successful_validation\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\x18lastSuccessfulValidation\x88\x01\x01\x12>\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02R\tcreatedAt\x88\x01\x01\x42\x17\n\x15_last_validation_timeB\x1d\n\x1b_last_successful_validationB\r\n\x0b_created_atb\x06proto3')
25
+
26
+ _globals = globals()
27
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
28
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'corvic.model.v1alpha.models_pb2', _globals)
29
+ if _descriptor._USE_C_DESCRIPTORS == False:
30
+ DESCRIPTOR._options = None
31
+ _globals['_PIPELINE_SOURCEOUTPUTSENTRY']._options = None
32
+ _globals['_PIPELINE_SOURCEOUTPUTSENTRY']._serialized_options = b'8\001'
33
+ _globals['_ROOM']._serialized_start=279
34
+ _globals['_ROOM']._serialized_end=423
35
+ _globals['_RESOURCE']._serialized_start=426
36
+ _globals['_RESOURCE']._serialized_end=898
37
+ _globals['_SOURCE']._serialized_start=901
38
+ _globals['_SOURCE']._serialized_end=1281
39
+ _globals['_PIPELINE']._serialized_start=1284
40
+ _globals['_PIPELINE']._serialized_end=1773
41
+ _globals['_PIPELINE_SOURCEOUTPUTSENTRY']._serialized_start=1664
42
+ _globals['_PIPELINE_SOURCEOUTPUTSENTRY']._serialized_end=1758
43
+ _globals['_FEATUREVIEWSOURCE']._serialized_start=1776
44
+ _globals['_FEATUREVIEWSOURCE']._serialized_end=2106
45
+ _globals['_FEATUREVIEW']._serialized_start=2109
46
+ _globals['_FEATUREVIEW']._serialized_end=2521
47
+ _globals['_SPACE']._serialized_start=2524
48
+ _globals['_SPACE']._serialized_end=2902
49
+ _globals['_COMPLETIONMODEL']._serialized_start=2905
50
+ _globals['_COMPLETIONMODEL']._serialized_end=3440
51
+ # @@protoc_insertion_point(module_scope)
@@ -1,4 +1,3 @@
1
- from corvic_generated.orm.v1 import agent_pb2 as _agent_pb2
2
1
  from corvic_generated.orm.v1 import completion_model_pb2 as _completion_model_pb2
3
2
  from corvic_generated.orm.v1 import feature_view_pb2 as _feature_view_pb2
4
3
  from corvic_generated.orm.v1 import pipeline_pb2 as _pipeline_pb2
@@ -166,22 +165,6 @@ class Space(_message.Message):
166
165
  created_at: _timestamp_pb2.Timestamp
167
166
  def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., room_id: _Optional[str] = ..., space_parameters: _Optional[_Union[_space_pb2.SpaceParameters, _Mapping]] = ..., feature_view: _Optional[_Union[FeatureView, _Mapping]] = ..., auto_sync: bool = ..., org_id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
168
167
 
169
- class Agent(_message.Message):
170
- __slots__ = ("id", "name", "room_id", "agent_parameters", "org_id", "created_at")
171
- ID_FIELD_NUMBER: _ClassVar[int]
172
- NAME_FIELD_NUMBER: _ClassVar[int]
173
- ROOM_ID_FIELD_NUMBER: _ClassVar[int]
174
- AGENT_PARAMETERS_FIELD_NUMBER: _ClassVar[int]
175
- ORG_ID_FIELD_NUMBER: _ClassVar[int]
176
- CREATED_AT_FIELD_NUMBER: _ClassVar[int]
177
- id: str
178
- name: str
179
- room_id: str
180
- agent_parameters: _agent_pb2.AgentParameters
181
- org_id: str
182
- created_at: _timestamp_pb2.Timestamp
183
- def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., room_id: _Optional[str] = ..., agent_parameters: _Optional[_Union[_agent_pb2.AgentParameters, _Mapping]] = ..., org_id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
184
-
185
168
  class CompletionModel(_message.Message):
186
169
  __slots__ = ("id", "name", "description", "org_id", "parameters", "secret_api_key", "last_validation_time", "last_successful_validation", "created_at")
187
170
  ID_FIELD_NUMBER: _ClassVar[int]
@@ -1,154 +0,0 @@
1
- """Corvic Agents."""
2
-
3
- from __future__ import annotations
4
-
5
- import copy
6
- import datetime
7
- from collections.abc import Iterable, Sequence
8
- from typing import TypeAlias
9
-
10
- from sqlalchemy import orm as sa_orm
11
-
12
- from corvic import orm, system
13
- from corvic.model._base_model import BelongsToRoomModel
14
- from corvic.model._defaults import Defaults
15
- from corvic.model._proto_orm_convert import (
16
- agent_delete_orms,
17
- agent_orm_to_proto,
18
- agent_proto_to_orm,
19
- )
20
- from corvic.result import InvalidArgumentError, NotFoundError, Ok
21
- from corvic_generated.model.v1alpha import models_pb2
22
- from corvic_generated.orm.v1.agent_pb2 import AgentParameters
23
-
24
- OrgID: TypeAlias = orm.OrgID
25
- RoomID: TypeAlias = orm.RoomID
26
- FeatureViewID: TypeAlias = orm.FeatureViewID
27
- AgentID: TypeAlias = orm.AgentID
28
-
29
-
30
- class Agent(BelongsToRoomModel[AgentID, models_pb2.Agent, orm.Agent]):
31
- """A corvic agent represents a named agent that can produce embeddings."""
32
-
33
- @classmethod
34
- def orm_class(cls):
35
- return orm.Agent
36
-
37
- @classmethod
38
- def id_class(cls):
39
- return AgentID
40
-
41
- @classmethod
42
- def orm_to_proto(cls, orm_obj: orm.Agent) -> models_pb2.Agent:
43
- return agent_orm_to_proto(orm_obj)
44
-
45
- @classmethod
46
- def proto_to_orm(
47
- cls, proto_obj: models_pb2.Agent, session: orm.Session
48
- ) -> Ok[orm.Agent] | InvalidArgumentError:
49
- return agent_proto_to_orm(proto_obj, session)
50
-
51
- @classmethod
52
- def delete_by_ids(
53
- cls, ids: Sequence[AgentID], session: orm.Session
54
- ) -> Ok[None] | InvalidArgumentError:
55
- return agent_delete_orms(ids, session)
56
-
57
- @classmethod
58
- def from_id(
59
- cls,
60
- agent_id: AgentID,
61
- client: system.Client | None = None,
62
- session: sa_orm.Session | None = None,
63
- ) -> Ok[Agent] | NotFoundError:
64
- client = client or Defaults.get_default_client()
65
- return cls.load_proto_for(agent_id, client, existing_session=session).map(
66
- lambda proto_self: cls(client, proto_self)
67
- )
68
-
69
- @classmethod
70
- def from_orm(
71
- cls,
72
- agent: orm.Agent,
73
- client: system.Client | None = None,
74
- ):
75
- client = client or Defaults.get_default_client()
76
- return cls(
77
- client,
78
- cls.orm_to_proto(agent),
79
- )
80
-
81
- @classmethod
82
- def create(
83
- cls,
84
- name: str,
85
- parameters: AgentParameters,
86
- room_id: RoomID | None = None,
87
- client: system.Client | None = None,
88
- ):
89
- client = client or Defaults.get_default_client()
90
- return cls(
91
- client,
92
- models_pb2.Agent(
93
- name=name,
94
- agent_parameters=parameters,
95
- room_id=str(room_id or Defaults.get_default_room_id(client)),
96
- ),
97
- )
98
-
99
- @classmethod
100
- def from_proto(
101
- cls, proto: models_pb2.Agent, client: system.Client | None = None
102
- ) -> Agent:
103
- client = client or Defaults.get_default_client()
104
- return cls(client, proto)
105
-
106
- @classmethod
107
- def list(
108
- cls,
109
- *,
110
- limit: int | None = None,
111
- room_id: RoomID | None = None,
112
- created_before: datetime.datetime | None = None,
113
- client: system.Client | None = None,
114
- ids: Iterable[AgentID] | None = None,
115
- existing_session: sa_orm.Session | None = None,
116
- ) -> Ok[list[Agent]] | NotFoundError | InvalidArgumentError:
117
- """List agent models."""
118
- client = client or Defaults.get_default_client()
119
- match cls.list_as_proto(
120
- client,
121
- limit=limit,
122
- room_id=room_id,
123
- created_before=created_before,
124
- ids=ids,
125
- existing_session=existing_session,
126
- ):
127
- case NotFoundError() | InvalidArgumentError() as err:
128
- return err
129
- case Ok(protos):
130
- return Ok([cls.from_proto(proto, client) for proto in protos])
131
-
132
- @property
133
- def name(self) -> str:
134
- return self.proto_self.name
135
-
136
- @property
137
- def parameters(self) -> AgentParameters:
138
- return self.proto_self.agent_parameters
139
-
140
- def with_name(self, name: str) -> Agent:
141
- proto_self = copy.deepcopy(self.proto_self)
142
- proto_self.name = name
143
- return self.__class__(
144
- self.client,
145
- proto_self=proto_self,
146
- )
147
-
148
- def with_parameters(self, parameters: AgentParameters) -> Agent:
149
- proto_self = copy.deepcopy(self.proto_self)
150
- proto_self.agent_parameters.CopyFrom(parameters)
151
- return self.__class__(
152
- self.client,
153
- proto_self=proto_self,
154
- )