nominal-api-protos 0.1011.0__tar.gz → 0.1048.0__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 (118) hide show
  1. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/PKG-INFO +1 -1
  2. nominal_api_protos-0.1048.0/nominal_api_protos/nominal/ai/v1/ai_agent_pb2.py +119 -0
  3. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/ai/v1/ai_agent_pb2.pyi +48 -66
  4. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/ai/v1/ai_agent_pb2_grpc.py +44 -0
  5. nominal_api_protos-0.1048.0/nominal_api_protos/nominal/ai/v1/model_provider_health_pb2.py +53 -0
  6. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/ai/v1/model_provider_health_pb2.pyi +4 -2
  7. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connect/download/v1/connect_download_pb2.py +15 -7
  8. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connect/download/v1/connect_download_pb2.pyi +12 -0
  9. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connect/download/v1/connect_download_pb2_grpc.py +44 -0
  10. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/direct_channel_writer/v2/direct_nominal_channel_writer_pb2.py +25 -13
  11. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/direct_channel_writer/v2/direct_nominal_channel_writer_pb2.pyi +31 -2
  12. nominal_api_protos-0.1048.0/nominal_api_protos/nominal/nominalinstro/v1/python_package_registry_pb2.py +49 -0
  13. nominal_api_protos-0.1048.0/nominal_api_protos/nominal/nominalinstro/v1/python_package_registry_pb2.pyi +27 -0
  14. nominal_api_protos-0.1048.0/nominal_api_protos/nominal/nominalinstro/v1/python_package_registry_pb2_grpc.py +107 -0
  15. nominal_api_protos-0.1048.0/nominal_api_protos/nominal/procedures/executions/v1/procedure_executions_pb2.py +422 -0
  16. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/procedures/executions/v1/procedure_executions_pb2.pyi +4 -21
  17. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/procedures/executions/v1/procedure_executions_pb2_grpc.py +0 -44
  18. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/procedures/v1/procedures_pb2.py +246 -188
  19. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/procedures/v1/procedures_pb2.pyi +149 -6
  20. nominal_api_protos-0.1048.0/nominal_api_protos/nominal_write_pb2.py +78 -0
  21. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal_write_pb2.pyi +18 -2
  22. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos.egg-info/PKG-INFO +1 -1
  23. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos.egg-info/SOURCES.txt +3 -6
  24. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/setup.py +1 -1
  25. nominal_api_protos-0.1011.0/nominal_api_protos/nominal/ai/v1/ai_agent_pb2.py +0 -121
  26. nominal_api_protos-0.1011.0/nominal_api_protos/nominal/ai/v1/ai_features_pb2.py +0 -40
  27. nominal_api_protos-0.1011.0/nominal_api_protos/nominal/ai/v1/ai_features_pb2.pyi +0 -15
  28. nominal_api_protos-0.1011.0/nominal_api_protos/nominal/ai/v1/ai_features_pb2_grpc.py +0 -101
  29. nominal_api_protos-0.1011.0/nominal_api_protos/nominal/ai/v1/model_provider_health_pb2.py +0 -51
  30. nominal_api_protos-0.1011.0/nominal_api_protos/nominal/conversations/v1/conversations_pb2.py +0 -79
  31. nominal_api_protos-0.1011.0/nominal_api_protos/nominal/conversations/v1/conversations_pb2.pyi +0 -178
  32. nominal_api_protos-0.1011.0/nominal_api_protos/nominal/conversations/v1/conversations_pb2_grpc.py +0 -277
  33. nominal_api_protos-0.1011.0/nominal_api_protos/nominal/procedures/executions/v1/procedure_executions_pb2.py +0 -433
  34. nominal_api_protos-0.1011.0/nominal_api_protos/nominal_write_pb2.py +0 -74
  35. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/ai/v1/knowledge_base_pb2.py +0 -0
  36. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/ai/v1/knowledge_base_pb2.pyi +0 -0
  37. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/ai/v1/knowledge_base_pb2_grpc.py +0 -0
  38. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/ai/v1/model_provider_health_pb2_grpc.py +0 -0
  39. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/application/v1/application_pb2.py +0 -0
  40. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/application/v1/application_pb2.pyi +0 -0
  41. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/application/v1/application_pb2_grpc.py +0 -0
  42. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authentication/groups/v1/groups_pb2.py +0 -0
  43. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authentication/groups/v1/groups_pb2.pyi +0 -0
  44. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authentication/groups/v1/groups_pb2_grpc.py +0 -0
  45. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authorization/markings/v1/markings_pb2.py +0 -0
  46. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authorization/markings/v1/markings_pb2.pyi +0 -0
  47. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authorization/markings/v1/markings_pb2_grpc.py +0 -0
  48. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authorization/permissions/v1/permissions_pb2.py +0 -0
  49. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authorization/permissions/v1/permissions_pb2.pyi +0 -0
  50. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authorization/permissions/v1/permissions_pb2_grpc.py +0 -0
  51. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authorization/roles/v1/roles_pb2.py +0 -0
  52. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authorization/roles/v1/roles_pb2.pyi +0 -0
  53. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/authorization/roles/v1/roles_pb2_grpc.py +0 -0
  54. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/blob_storage_service/v1/blob_storage_service_pb2.py +0 -0
  55. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/blob_storage_service/v1/blob_storage_service_pb2.pyi +0 -0
  56. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/blob_storage_service/v1/blob_storage_service_pb2_grpc.py +0 -0
  57. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/comments/v1/comments_pb2.py +0 -0
  58. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/comments/v1/comments_pb2.pyi +0 -0
  59. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/comments/v1/comments_pb2_grpc.py +0 -0
  60. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connect/demo_apps/v1/connect_demo_apps_pb2.py +0 -0
  61. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connect/demo_apps/v1/connect_demo_apps_pb2.pyi +0 -0
  62. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connect/demo_apps/v1/connect_demo_apps_pb2_grpc.py +0 -0
  63. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connect/v1/connect_apps_pb2.py +0 -0
  64. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connect/v1/connect_apps_pb2.pyi +0 -0
  65. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connect/v1/connect_apps_pb2_grpc.py +0 -0
  66. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connections/v1/external_api_connections_pb2.py +0 -0
  67. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connections/v1/external_api_connections_pb2.pyi +0 -0
  68. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/connections/v1/external_api_connections_pb2_grpc.py +0 -0
  69. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/data_connector/v1/data_connector_pb2.py +0 -0
  70. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/data_connector/v1/data_connector_pb2.pyi +0 -0
  71. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/data_connector/v1/data_connector_pb2_grpc.py +0 -0
  72. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/data_connector/v1/opc_ua_connector_pb2.py +0 -0
  73. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/data_connector/v1/opc_ua_connector_pb2.pyi +0 -0
  74. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/data_connector/v1/opc_ua_connector_pb2_grpc.py +0 -0
  75. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/direct_channel_writer/v2/direct_nominal_channel_writer_pb2_grpc.py +0 -0
  76. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/edge/v1/edge_sync_pb2.py +0 -0
  77. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/edge/v1/edge_sync_pb2.pyi +0 -0
  78. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/edge/v1/edge_sync_pb2_grpc.py +0 -0
  79. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/procedures/v1/id_format_pb2.py +0 -0
  80. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/procedures/v1/id_format_pb2.pyi +0 -0
  81. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/procedures/v1/id_format_pb2_grpc.py +0 -0
  82. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/procedures/v1/procedures_pb2_grpc.py +0 -0
  83. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/scout/elements/v1/elements_pb2.py +0 -0
  84. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/scout/elements/v1/elements_pb2.pyi +0 -0
  85. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/scout/elements/v1/elements_pb2_grpc.py +0 -0
  86. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/streaming_connection_service/v1/opc_ua_pb2.py +0 -0
  87. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/streaming_connection_service/v1/opc_ua_pb2.pyi +0 -0
  88. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/streaming_connection_service/v1/opc_ua_pb2_grpc.py +0 -0
  89. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/streaming_connection_service/v1/streaming_connection_service_pb2.py +0 -0
  90. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/streaming_connection_service/v1/streaming_connection_service_pb2.pyi +0 -0
  91. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/streaming_connection_service/v1/streaming_connection_service_pb2_grpc.py +0 -0
  92. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/types/series/series_pb2.py +0 -0
  93. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/types/series/series_pb2.pyi +0 -0
  94. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/types/series/series_pb2_grpc.py +0 -0
  95. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/types/time/time_pb2.py +0 -0
  96. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/types/time/time_pb2.pyi +0 -0
  97. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/types/time/time_pb2_grpc.py +0 -0
  98. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/types/types_pb2.py +0 -0
  99. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/types/types_pb2.pyi +0 -0
  100. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/types/types_pb2_grpc.py +0 -0
  101. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/units/v1/units_pb2.py +0 -0
  102. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/units/v1/units_pb2.pyi +0 -0
  103. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/units/v1/units_pb2_grpc.py +0 -0
  104. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/versioning/v1/versioning_pb2.py +0 -0
  105. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/versioning/v1/versioning_pb2.pyi +0 -0
  106. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/versioning/v1/versioning_pb2_grpc.py +0 -0
  107. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/workspaces/v1/workspaces_pb2.py +0 -0
  108. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/workspaces/v1/workspaces_pb2.pyi +0 -0
  109. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal/workspaces/v1/workspaces_pb2_grpc.py +0 -0
  110. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/nominal_write_pb2_grpc.py +0 -0
  111. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/prometheus_remote_write_pb2.py +0 -0
  112. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/prometheus_remote_write_pb2.pyi +0 -0
  113. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/prometheus_remote_write_pb2_grpc.py +0 -0
  114. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos/py.typed +0 -0
  115. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos.egg-info/dependency_links.txt +0 -0
  116. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos.egg-info/requires.txt +0 -0
  117. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/nominal_api_protos.egg-info/top_level.txt +0 -0
  118. {nominal_api_protos-0.1011.0 → nominal_api_protos-0.1048.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api-protos
3
- Version: 0.1011.0
3
+ Version: 0.1048.0
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: protobuf>=5.25.0
6
6
  Requires-Dist: grpcio>=1.76.0
@@ -0,0 +1,119 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: nominal/ai/v1/ai_agent.proto
5
+ # Protobuf Python Version: 6.31.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 31,
16
+ 1,
17
+ '',
18
+ 'nominal/ai/v1/ai_agent.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
26
+
27
+
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cnominal/ai/v1/ai_agent.proto\x12\rnominal.ai.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"T\n$GetSnapshotRidByUserMessageIdRequest\x12\x18\n\x10\x63onversation_rid\x18\x01 \x01(\t\x12\x12\n\nmessage_id\x18\x02 \x01(\t\"S\n%GetSnapshotRidByUserMessageIdResponse\x12\x19\n\x0csnapshot_rid\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_snapshot_rid\"\x0e\n\x0cReadOnlyMode\"\n\n\x08\x45\x64itMode\"u\n\x10\x43onversationMode\x12\x30\n\tread_only\x18\x01 \x01(\x0b\x32\x1b.nominal.ai.v1.ReadOnlyModeH\x00\x12\'\n\x04\x65\x64it\x18\x02 \x01(\x0b\x32\x17.nominal.ai.v1.EditModeH\x00\x42\x06\n\x04mode\"\xf8\x01\n\x11StreamChatRequest\x12\x18\n\x10\x63onversation_rid\x18\x01 \x01(\t\x12\x30\n\x07message\x18\x02 \x01(\x0b\x32\x1f.nominal.ai.v1.UserModelMessage\x12(\n\x06images\x18\x03 \x03(\x0b\x32\x18.nominal.ai.v1.ImagePart\x12\x32\n\x08workbook\x18\x04 \x01(\x0b\x32\x1e.nominal.ai.v1.WorkbookContextH\x00\x12.\n\x06global\x18\x05 \x01(\x0b\x32\x1c.nominal.ai.v1.GlobalContextH\x00\x42\t\n\x07\x63ontext\"z\n\x0fWorkbookContext\x12\x14\n\x0cworkbook_rid\x18\x01 \x01(\t\x12?\n\ruser_presence\x18\x02 \x01(\x0b\x32#.nominal.ai.v1.WorkbookUserPresenceH\x00\x88\x01\x01\x42\x10\n\x0e_user_presence\"\x0f\n\rGlobalContext\"t\n\x14WorkbookUserPresence\x12\x16\n\ttab_index\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12,\n\x05range\x18\x02 \x01(\x0b\x32\x18.nominal.ai.v1.TimeRangeH\x01\x88\x01\x01\x42\x0c\n\n_tab_indexB\x08\n\x06_range\"\xf3\x01\n\x19\x43reateConversationRequest\x12\r\n\x05title\x18\x01 \x01(\t\x12\x15\n\rworkspace_rid\x18\x02 \x01(\t\x12!\n\x14old_conversation_rid\x18\x03 \x01(\tH\x00\x88\x01\x01\x12 \n\x13previous_message_id\x18\x04 \x01(\tH\x01\x88\x01\x01\x12:\n\x11\x63onversation_mode\x18\x05 \x01(\x0b\x32\x1f.nominal.ai.v1.ConversationModeB\x17\n\x15_old_conversation_ridB\x16\n\x14_previous_message_id\":\n\x1a\x43reateConversationResponse\x12\x1c\n\x14new_conversation_rid\x18\x01 \x01(\t\"\xb2\x01\n!UpdateConversationMetadataRequest\x12\x12\n\x05title\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x10\x63onversation_rid\x18\x02 \x01(\t\x12?\n\x11\x63onversation_mode\x18\x03 \x01(\x0b\x32\x1f.nominal.ai.v1.ConversationModeH\x01\x88\x01\x01\x42\x08\n\x06_titleB\x14\n\x12_conversation_mode\"$\n\"UpdateConversationMetadataResponse\"5\n\x19\x44\x65leteConversationRequest\x12\x18\n\x10\x63onversation_rid\x18\x01 \x01(\t\"\x1c\n\x1a\x44\x65leteConversationResponse\"\xa6\x01\n\x16GetConversationRequest\x12\x18\n\x10\x63onversation_rid\x18\x01 \x01(\t\x12\"\n\x15page_start_message_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11max_message_count\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\x18\n\x16_page_start_message_idB\x14\n\x12_max_message_count\"\xc1\x01\n\x12ModelMessageWithId\x12.\n\x07message\x18\x01 \x01(\x0b\x32\x1b.nominal.ai.v1.ModelMessageH\x00\x12\x30\n\x0btool_action\x18\x02 \x01(\x0b\x32\x19.nominal.ai.v1.ToolActionH\x00\x12\x12\n\nmessage_id\x18\x03 \x01(\t\x12\x19\n\x0csnapshot_rid\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07\x63ontentB\x0f\n\r_snapshot_rid\"\x9a\x01\n\x17GetConversationResponse\x12;\n\x10ordered_messages\x18\x01 \x03(\x0b\x32!.nominal.ai.v1.ModelMessageWithId\x12\x42\n\x15\x63onversation_metadata\x18\x02 \x01(\x0b\x32#.nominal.ai.v1.ConversationMetadata\"1\n\x18ListConversationsRequest\x12\x15\n\rworkspace_rid\x18\x01 \x01(\t\"\xd3\x01\n\x14\x43onversationMetadata\x12\x18\n\x10\x63onversation_rid\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0flast_updated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\x04mode\x18\x05 \x01(\x0b\x32\x1f.nominal.ai.v1.ConversationMode\"W\n\x19ListConversationsResponse\x12:\n\rconversations\x18\x01 \x03(\x0b\x32#.nominal.ai.v1.ConversationMetadata\"g\n\tTimeRange\x12-\n\x0brange_start\x18\x01 \x01(\x0b\x32\x18.nominal.ai.v1.Timestamp\x12+\n\trange_end\x18\x02 \x01(\x0b\x32\x18.nominal.ai.v1.Timestamp\"1\n\tTimestamp\x12\x0f\n\x07seconds\x18\x01 \x01(\x05\x12\x13\n\x0bnanoseconds\x18\x02 \x01(\x05\"\x82\x01\n\x0cModelMessage\x12/\n\x04user\x18\x01 \x01(\x0b\x32\x1f.nominal.ai.v1.UserModelMessageH\x00\x12\x39\n\tassistant\x18\x02 \x01(\x0b\x32$.nominal.ai.v1.AssistantModelMessageH\x00\x42\x06\n\x04kind\"@\n\x10UserModelMessage\x12,\n\x04text\x18\x01 \x03(\x0b\x32\x1e.nominal.ai.v1.UserContentPart\"S\n\x15\x41ssistantModelMessage\x12:\n\rcontent_parts\x18\x01 \x03(\x0b\x32#.nominal.ai.v1.AssistantContentPart\"B\n\x0fUserContentPart\x12\'\n\x04text\x18\x01 \x01(\x0b\x32\x17.nominal.ai.v1.TextPartH\x00\x42\x06\n\x04part\"z\n\x14\x41ssistantContentPart\x12\'\n\x04text\x18\x01 \x01(\x0b\x32\x17.nominal.ai.v1.TextPartH\x00\x12\x31\n\treasoning\x18\x02 \x01(\x0b\x32\x1c.nominal.ai.v1.ReasoningPartH\x00\x42\x06\n\x04part\"\x18\n\x08TextPart\x12\x0c\n\x04text\x18\x01 \x01(\t\"e\n\tImagePart\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x17\n\nmedia_type\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08\x66ilename\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_media_typeB\x0b\n\t_filename\"\"\n\rReasoningPart\x12\x11\n\treasoning\x18\x01 \x01(\t\"\xd8\x03\n\x12StreamChatResponse\x12\'\n\x06\x66inish\x18\x01 \x01(\x0b\x32\x15.nominal.ai.v1.FinishH\x00\x12%\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x14.nominal.ai.v1.ErrorH\x00\x12.\n\ntext_start\x18\x03 \x01(\x0b\x32\x18.nominal.ai.v1.TextStartH\x00\x12.\n\ntext_delta\x18\x04 \x01(\x0b\x32\x18.nominal.ai.v1.TextDeltaH\x00\x12*\n\x08text_end\x18\x05 \x01(\x0b\x32\x16.nominal.ai.v1.TextEndH\x00\x12\x38\n\x0freasoning_start\x18\x06 \x01(\x0b\x32\x1d.nominal.ai.v1.ReasoningStartH\x00\x12\x38\n\x0freasoning_delta\x18\x07 \x01(\x0b\x32\x1d.nominal.ai.v1.ReasoningDeltaH\x00\x12\x34\n\rreasoning_end\x18\x08 \x01(\x0b\x32\x1b.nominal.ai.v1.ReasoningEndH\x00\x12\x30\n\x0btool_action\x18\n \x01(\x0b\x32\x19.nominal.ai.v1.ToolActionH\x00\x42\n\n\x08response\"K\n\x06\x46inish\x12\x1b\n\x13ordered_message_ids\x18\x01 \x03(\t\x12\x16\n\tnew_title\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_new_title\"\x18\n\x05\x45rror\x12\x0f\n\x07message\x18\x01 \x01(\t\"\x17\n\tTextStart\x12\n\n\x02id\x18\x01 \x01(\t\"&\n\tTextDelta\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\t\"\x15\n\x07TextEnd\x12\n\n\x02id\x18\x01 \x01(\t\"\x1c\n\x0eReasoningStart\x12\n\n\x02id\x18\x01 \x01(\t\"+\n\x0eReasoningDelta\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\t\"\x1a\n\x0cReasoningEnd\x12\n\n\x02id\x18\x01 \x01(\t\"\\\n\nToolAction\x12\n\n\x02id\x18\x01 \x01(\t\x12\x18\n\x10tool_action_verb\x18\x02 \x01(\t\x12\x18\n\x0btool_target\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_tool_target2\x96\x06\n\x0e\x41IAgentService\x12S\n\nStreamChat\x12 .nominal.ai.v1.StreamChatRequest\x1a!.nominal.ai.v1.StreamChatResponse0\x01\x12`\n\x0fGetConversation\x12%.nominal.ai.v1.GetConversationRequest\x1a&.nominal.ai.v1.GetConversationResponse\x12\x66\n\x11ListConversations\x12\'.nominal.ai.v1.ListConversationsRequest\x1a(.nominal.ai.v1.ListConversationsResponse\x12i\n\x12\x43reateConversation\x12(.nominal.ai.v1.CreateConversationRequest\x1a).nominal.ai.v1.CreateConversationResponse\x12\x81\x01\n\x1aUpdateConversationMetadata\x12\x30.nominal.ai.v1.UpdateConversationMetadataRequest\x1a\x31.nominal.ai.v1.UpdateConversationMetadataResponse\x12i\n\x12\x44\x65leteConversation\x12(.nominal.ai.v1.DeleteConversationRequest\x1a).nominal.ai.v1.DeleteConversationResponse\x12\x8a\x01\n\x1dGetSnapshotRidByUserMessageId\x12\x33.nominal.ai.v1.GetSnapshotRidByUserMessageIdRequest\x1a\x34.nominal.ai.v1.GetSnapshotRidByUserMessageIdResponseb\x06proto3')
29
+
30
+ _globals = globals()
31
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'nominal.ai.v1.ai_agent_pb2', _globals)
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ DESCRIPTOR._loaded_options = None
35
+ _globals['_GETSNAPSHOTRIDBYUSERMESSAGEIDREQUEST']._serialized_start=80
36
+ _globals['_GETSNAPSHOTRIDBYUSERMESSAGEIDREQUEST']._serialized_end=164
37
+ _globals['_GETSNAPSHOTRIDBYUSERMESSAGEIDRESPONSE']._serialized_start=166
38
+ _globals['_GETSNAPSHOTRIDBYUSERMESSAGEIDRESPONSE']._serialized_end=249
39
+ _globals['_READONLYMODE']._serialized_start=251
40
+ _globals['_READONLYMODE']._serialized_end=265
41
+ _globals['_EDITMODE']._serialized_start=267
42
+ _globals['_EDITMODE']._serialized_end=277
43
+ _globals['_CONVERSATIONMODE']._serialized_start=279
44
+ _globals['_CONVERSATIONMODE']._serialized_end=396
45
+ _globals['_STREAMCHATREQUEST']._serialized_start=399
46
+ _globals['_STREAMCHATREQUEST']._serialized_end=647
47
+ _globals['_WORKBOOKCONTEXT']._serialized_start=649
48
+ _globals['_WORKBOOKCONTEXT']._serialized_end=771
49
+ _globals['_GLOBALCONTEXT']._serialized_start=773
50
+ _globals['_GLOBALCONTEXT']._serialized_end=788
51
+ _globals['_WORKBOOKUSERPRESENCE']._serialized_start=790
52
+ _globals['_WORKBOOKUSERPRESENCE']._serialized_end=906
53
+ _globals['_CREATECONVERSATIONREQUEST']._serialized_start=909
54
+ _globals['_CREATECONVERSATIONREQUEST']._serialized_end=1152
55
+ _globals['_CREATECONVERSATIONRESPONSE']._serialized_start=1154
56
+ _globals['_CREATECONVERSATIONRESPONSE']._serialized_end=1212
57
+ _globals['_UPDATECONVERSATIONMETADATAREQUEST']._serialized_start=1215
58
+ _globals['_UPDATECONVERSATIONMETADATAREQUEST']._serialized_end=1393
59
+ _globals['_UPDATECONVERSATIONMETADATARESPONSE']._serialized_start=1395
60
+ _globals['_UPDATECONVERSATIONMETADATARESPONSE']._serialized_end=1431
61
+ _globals['_DELETECONVERSATIONREQUEST']._serialized_start=1433
62
+ _globals['_DELETECONVERSATIONREQUEST']._serialized_end=1486
63
+ _globals['_DELETECONVERSATIONRESPONSE']._serialized_start=1488
64
+ _globals['_DELETECONVERSATIONRESPONSE']._serialized_end=1516
65
+ _globals['_GETCONVERSATIONREQUEST']._serialized_start=1519
66
+ _globals['_GETCONVERSATIONREQUEST']._serialized_end=1685
67
+ _globals['_MODELMESSAGEWITHID']._serialized_start=1688
68
+ _globals['_MODELMESSAGEWITHID']._serialized_end=1881
69
+ _globals['_GETCONVERSATIONRESPONSE']._serialized_start=1884
70
+ _globals['_GETCONVERSATIONRESPONSE']._serialized_end=2038
71
+ _globals['_LISTCONVERSATIONSREQUEST']._serialized_start=2040
72
+ _globals['_LISTCONVERSATIONSREQUEST']._serialized_end=2089
73
+ _globals['_CONVERSATIONMETADATA']._serialized_start=2092
74
+ _globals['_CONVERSATIONMETADATA']._serialized_end=2303
75
+ _globals['_LISTCONVERSATIONSRESPONSE']._serialized_start=2305
76
+ _globals['_LISTCONVERSATIONSRESPONSE']._serialized_end=2392
77
+ _globals['_TIMERANGE']._serialized_start=2394
78
+ _globals['_TIMERANGE']._serialized_end=2497
79
+ _globals['_TIMESTAMP']._serialized_start=2499
80
+ _globals['_TIMESTAMP']._serialized_end=2548
81
+ _globals['_MODELMESSAGE']._serialized_start=2551
82
+ _globals['_MODELMESSAGE']._serialized_end=2681
83
+ _globals['_USERMODELMESSAGE']._serialized_start=2683
84
+ _globals['_USERMODELMESSAGE']._serialized_end=2747
85
+ _globals['_ASSISTANTMODELMESSAGE']._serialized_start=2749
86
+ _globals['_ASSISTANTMODELMESSAGE']._serialized_end=2832
87
+ _globals['_USERCONTENTPART']._serialized_start=2834
88
+ _globals['_USERCONTENTPART']._serialized_end=2900
89
+ _globals['_ASSISTANTCONTENTPART']._serialized_start=2902
90
+ _globals['_ASSISTANTCONTENTPART']._serialized_end=3024
91
+ _globals['_TEXTPART']._serialized_start=3026
92
+ _globals['_TEXTPART']._serialized_end=3050
93
+ _globals['_IMAGEPART']._serialized_start=3052
94
+ _globals['_IMAGEPART']._serialized_end=3153
95
+ _globals['_REASONINGPART']._serialized_start=3155
96
+ _globals['_REASONINGPART']._serialized_end=3189
97
+ _globals['_STREAMCHATRESPONSE']._serialized_start=3192
98
+ _globals['_STREAMCHATRESPONSE']._serialized_end=3664
99
+ _globals['_FINISH']._serialized_start=3666
100
+ _globals['_FINISH']._serialized_end=3741
101
+ _globals['_ERROR']._serialized_start=3743
102
+ _globals['_ERROR']._serialized_end=3767
103
+ _globals['_TEXTSTART']._serialized_start=3769
104
+ _globals['_TEXTSTART']._serialized_end=3792
105
+ _globals['_TEXTDELTA']._serialized_start=3794
106
+ _globals['_TEXTDELTA']._serialized_end=3832
107
+ _globals['_TEXTEND']._serialized_start=3834
108
+ _globals['_TEXTEND']._serialized_end=3855
109
+ _globals['_REASONINGSTART']._serialized_start=3857
110
+ _globals['_REASONINGSTART']._serialized_end=3885
111
+ _globals['_REASONINGDELTA']._serialized_start=3887
112
+ _globals['_REASONINGDELTA']._serialized_end=3930
113
+ _globals['_REASONINGEND']._serialized_start=3932
114
+ _globals['_REASONINGEND']._serialized_end=3958
115
+ _globals['_TOOLACTION']._serialized_start=3960
116
+ _globals['_TOOLACTION']._serialized_end=4052
117
+ _globals['_AIAGENTSERVICE']._serialized_start=4055
118
+ _globals['_AIAGENTSERVICE']._serialized_end=4845
119
+ # @@protoc_insertion_point(module_scope)
@@ -9,6 +9,36 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
9
9
 
10
10
  DESCRIPTOR: _descriptor.FileDescriptor
11
11
 
12
+ class GetSnapshotRidByUserMessageIdRequest(_message.Message):
13
+ __slots__ = ("conversation_rid", "message_id")
14
+ CONVERSATION_RID_FIELD_NUMBER: _ClassVar[int]
15
+ MESSAGE_ID_FIELD_NUMBER: _ClassVar[int]
16
+ conversation_rid: str
17
+ message_id: str
18
+ def __init__(self, conversation_rid: _Optional[str] = ..., message_id: _Optional[str] = ...) -> None: ...
19
+
20
+ class GetSnapshotRidByUserMessageIdResponse(_message.Message):
21
+ __slots__ = ("snapshot_rid",)
22
+ SNAPSHOT_RID_FIELD_NUMBER: _ClassVar[int]
23
+ snapshot_rid: str
24
+ def __init__(self, snapshot_rid: _Optional[str] = ...) -> None: ...
25
+
26
+ class ReadOnlyMode(_message.Message):
27
+ __slots__ = ()
28
+ def __init__(self) -> None: ...
29
+
30
+ class EditMode(_message.Message):
31
+ __slots__ = ()
32
+ def __init__(self) -> None: ...
33
+
34
+ class ConversationMode(_message.Message):
35
+ __slots__ = ("read_only", "edit")
36
+ READ_ONLY_FIELD_NUMBER: _ClassVar[int]
37
+ EDIT_FIELD_NUMBER: _ClassVar[int]
38
+ read_only: ReadOnlyMode
39
+ edit: EditMode
40
+ def __init__(self, read_only: _Optional[_Union[ReadOnlyMode, _Mapping]] = ..., edit: _Optional[_Union[EditMode, _Mapping]] = ...) -> None: ...
41
+
12
42
  class StreamChatRequest(_message.Message):
13
43
  __slots__ = ("conversation_rid", "message", "images", "workbook")
14
44
  CONVERSATION_RID_FIELD_NUMBER: _ClassVar[int]
@@ -43,16 +73,18 @@ class WorkbookUserPresence(_message.Message):
43
73
  def __init__(self, tab_index: _Optional[int] = ..., range: _Optional[_Union[TimeRange, _Mapping]] = ...) -> None: ...
44
74
 
45
75
  class CreateConversationRequest(_message.Message):
46
- __slots__ = ("title", "workspace_rid", "old_conversation_rid", "previous_message_id")
76
+ __slots__ = ("title", "workspace_rid", "old_conversation_rid", "previous_message_id", "conversation_mode")
47
77
  TITLE_FIELD_NUMBER: _ClassVar[int]
48
78
  WORKSPACE_RID_FIELD_NUMBER: _ClassVar[int]
49
79
  OLD_CONVERSATION_RID_FIELD_NUMBER: _ClassVar[int]
50
80
  PREVIOUS_MESSAGE_ID_FIELD_NUMBER: _ClassVar[int]
81
+ CONVERSATION_MODE_FIELD_NUMBER: _ClassVar[int]
51
82
  title: str
52
83
  workspace_rid: str
53
84
  old_conversation_rid: str
54
85
  previous_message_id: str
55
- def __init__(self, title: _Optional[str] = ..., workspace_rid: _Optional[str] = ..., old_conversation_rid: _Optional[str] = ..., previous_message_id: _Optional[str] = ...) -> None: ...
86
+ conversation_mode: ConversationMode
87
+ def __init__(self, title: _Optional[str] = ..., workspace_rid: _Optional[str] = ..., old_conversation_rid: _Optional[str] = ..., previous_message_id: _Optional[str] = ..., conversation_mode: _Optional[_Union[ConversationMode, _Mapping]] = ...) -> None: ...
56
88
 
57
89
  class CreateConversationResponse(_message.Message):
58
90
  __slots__ = ("new_conversation_rid",)
@@ -61,12 +93,14 @@ class CreateConversationResponse(_message.Message):
61
93
  def __init__(self, new_conversation_rid: _Optional[str] = ...) -> None: ...
62
94
 
63
95
  class UpdateConversationMetadataRequest(_message.Message):
64
- __slots__ = ("title", "conversation_rid")
96
+ __slots__ = ("title", "conversation_rid", "conversation_mode")
65
97
  TITLE_FIELD_NUMBER: _ClassVar[int]
66
98
  CONVERSATION_RID_FIELD_NUMBER: _ClassVar[int]
99
+ CONVERSATION_MODE_FIELD_NUMBER: _ClassVar[int]
67
100
  title: str
68
101
  conversation_rid: str
69
- def __init__(self, title: _Optional[str] = ..., conversation_rid: _Optional[str] = ...) -> None: ...
102
+ conversation_mode: ConversationMode
103
+ def __init__(self, title: _Optional[str] = ..., conversation_rid: _Optional[str] = ..., conversation_mode: _Optional[_Union[ConversationMode, _Mapping]] = ...) -> None: ...
70
104
 
71
105
  class UpdateConversationMetadataResponse(_message.Message):
72
106
  __slots__ = ()
@@ -93,14 +127,16 @@ class GetConversationRequest(_message.Message):
93
127
  def __init__(self, conversation_rid: _Optional[str] = ..., page_start_message_id: _Optional[str] = ..., max_message_count: _Optional[int] = ...) -> None: ...
94
128
 
95
129
  class ModelMessageWithId(_message.Message):
96
- __slots__ = ("message", "tool_action", "message_id")
130
+ __slots__ = ("message", "tool_action", "message_id", "snapshot_rid")
97
131
  MESSAGE_FIELD_NUMBER: _ClassVar[int]
98
132
  TOOL_ACTION_FIELD_NUMBER: _ClassVar[int]
99
133
  MESSAGE_ID_FIELD_NUMBER: _ClassVar[int]
134
+ SNAPSHOT_RID_FIELD_NUMBER: _ClassVar[int]
100
135
  message: ModelMessage
101
136
  tool_action: ToolAction
102
137
  message_id: str
103
- def __init__(self, message: _Optional[_Union[ModelMessage, _Mapping]] = ..., tool_action: _Optional[_Union[ToolAction, _Mapping]] = ..., message_id: _Optional[str] = ...) -> None: ...
138
+ snapshot_rid: str
139
+ def __init__(self, message: _Optional[_Union[ModelMessage, _Mapping]] = ..., tool_action: _Optional[_Union[ToolAction, _Mapping]] = ..., message_id: _Optional[str] = ..., snapshot_rid: _Optional[str] = ...) -> None: ...
104
140
 
105
141
  class GetConversationResponse(_message.Message):
106
142
  __slots__ = ("ordered_messages", "conversation_metadata")
@@ -117,16 +153,18 @@ class ListConversationsRequest(_message.Message):
117
153
  def __init__(self, workspace_rid: _Optional[str] = ...) -> None: ...
118
154
 
119
155
  class ConversationMetadata(_message.Message):
120
- __slots__ = ("conversation_rid", "title", "created_at", "last_updated_at")
156
+ __slots__ = ("conversation_rid", "title", "created_at", "last_updated_at", "mode")
121
157
  CONVERSATION_RID_FIELD_NUMBER: _ClassVar[int]
122
158
  TITLE_FIELD_NUMBER: _ClassVar[int]
123
159
  CREATED_AT_FIELD_NUMBER: _ClassVar[int]
124
160
  LAST_UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
161
+ MODE_FIELD_NUMBER: _ClassVar[int]
125
162
  conversation_rid: str
126
163
  title: str
127
164
  created_at: _timestamp_pb2.Timestamp
128
165
  last_updated_at: _timestamp_pb2.Timestamp
129
- def __init__(self, conversation_rid: _Optional[str] = ..., title: _Optional[str] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., last_updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
166
+ mode: ConversationMode
167
+ def __init__(self, conversation_rid: _Optional[str] = ..., title: _Optional[str] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., last_updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., mode: _Optional[_Union[ConversationMode, _Mapping]] = ...) -> None: ...
130
168
 
131
169
  class ListConversationsResponse(_message.Message):
132
170
  __slots__ = ("conversations",)
@@ -207,7 +245,7 @@ class ReasoningPart(_message.Message):
207
245
  def __init__(self, reasoning: _Optional[str] = ...) -> None: ...
208
246
 
209
247
  class StreamChatResponse(_message.Message):
210
- __slots__ = ("finish", "error", "text_start", "text_delta", "text_end", "reasoning_start", "reasoning_delta", "reasoning_end", "workbook_mutation", "tool_action")
248
+ __slots__ = ("finish", "error", "text_start", "text_delta", "text_end", "reasoning_start", "reasoning_delta", "reasoning_end", "tool_action")
211
249
  FINISH_FIELD_NUMBER: _ClassVar[int]
212
250
  ERROR_FIELD_NUMBER: _ClassVar[int]
213
251
  TEXT_START_FIELD_NUMBER: _ClassVar[int]
@@ -216,7 +254,6 @@ class StreamChatResponse(_message.Message):
216
254
  REASONING_START_FIELD_NUMBER: _ClassVar[int]
217
255
  REASONING_DELTA_FIELD_NUMBER: _ClassVar[int]
218
256
  REASONING_END_FIELD_NUMBER: _ClassVar[int]
219
- WORKBOOK_MUTATION_FIELD_NUMBER: _ClassVar[int]
220
257
  TOOL_ACTION_FIELD_NUMBER: _ClassVar[int]
221
258
  finish: Finish
222
259
  error: Error
@@ -226,9 +263,8 @@ class StreamChatResponse(_message.Message):
226
263
  reasoning_start: ReasoningStart
227
264
  reasoning_delta: ReasoningDelta
228
265
  reasoning_end: ReasoningEnd
229
- workbook_mutation: WorkbookMutation
230
266
  tool_action: ToolAction
231
- def __init__(self, finish: _Optional[_Union[Finish, _Mapping]] = ..., error: _Optional[_Union[Error, _Mapping]] = ..., text_start: _Optional[_Union[TextStart, _Mapping]] = ..., text_delta: _Optional[_Union[TextDelta, _Mapping]] = ..., text_end: _Optional[_Union[TextEnd, _Mapping]] = ..., reasoning_start: _Optional[_Union[ReasoningStart, _Mapping]] = ..., reasoning_delta: _Optional[_Union[ReasoningDelta, _Mapping]] = ..., reasoning_end: _Optional[_Union[ReasoningEnd, _Mapping]] = ..., workbook_mutation: _Optional[_Union[WorkbookMutation, _Mapping]] = ..., tool_action: _Optional[_Union[ToolAction, _Mapping]] = ...) -> None: ...
267
+ def __init__(self, finish: _Optional[_Union[Finish, _Mapping]] = ..., error: _Optional[_Union[Error, _Mapping]] = ..., text_start: _Optional[_Union[TextStart, _Mapping]] = ..., text_delta: _Optional[_Union[TextDelta, _Mapping]] = ..., text_end: _Optional[_Union[TextEnd, _Mapping]] = ..., reasoning_start: _Optional[_Union[ReasoningStart, _Mapping]] = ..., reasoning_delta: _Optional[_Union[ReasoningDelta, _Mapping]] = ..., reasoning_end: _Optional[_Union[ReasoningEnd, _Mapping]] = ..., tool_action: _Optional[_Union[ToolAction, _Mapping]] = ...) -> None: ...
232
268
 
233
269
  class Finish(_message.Message):
234
270
  __slots__ = ("ordered_message_ids", "new_title")
@@ -284,60 +320,6 @@ class ReasoningEnd(_message.Message):
284
320
  id: str
285
321
  def __init__(self, id: _Optional[str] = ...) -> None: ...
286
322
 
287
- class AddTabMutation(_message.Message):
288
- __slots__ = ("tab_name",)
289
- TAB_NAME_FIELD_NUMBER: _ClassVar[int]
290
- tab_name: str
291
- def __init__(self, tab_name: _Optional[str] = ...) -> None: ...
292
-
293
- class AddOrUpdatePanelMutation(_message.Message):
294
- __slots__ = ("panel_as_json", "panel_id", "tab_index")
295
- PANEL_AS_JSON_FIELD_NUMBER: _ClassVar[int]
296
- PANEL_ID_FIELD_NUMBER: _ClassVar[int]
297
- TAB_INDEX_FIELD_NUMBER: _ClassVar[int]
298
- panel_as_json: str
299
- panel_id: str
300
- tab_index: int
301
- def __init__(self, panel_as_json: _Optional[str] = ..., panel_id: _Optional[str] = ..., tab_index: _Optional[int] = ...) -> None: ...
302
-
303
- class RemovePanelsMutation(_message.Message):
304
- __slots__ = ("panel_ids",)
305
- PANEL_IDS_FIELD_NUMBER: _ClassVar[int]
306
- panel_ids: _containers.RepeatedScalarFieldContainer[str]
307
- def __init__(self, panel_ids: _Optional[_Iterable[str]] = ...) -> None: ...
308
-
309
- class AddOrReplaceVariableMutation(_message.Message):
310
- __slots__ = ("compute_spec_as_json", "variable_name", "display_name")
311
- COMPUTE_SPEC_AS_JSON_FIELD_NUMBER: _ClassVar[int]
312
- VARIABLE_NAME_FIELD_NUMBER: _ClassVar[int]
313
- DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
314
- compute_spec_as_json: str
315
- variable_name: str
316
- display_name: str
317
- def __init__(self, compute_spec_as_json: _Optional[str] = ..., variable_name: _Optional[str] = ..., display_name: _Optional[str] = ...) -> None: ...
318
-
319
- class DeleteVariablesMutation(_message.Message):
320
- __slots__ = ("variable_names",)
321
- VARIABLE_NAMES_FIELD_NUMBER: _ClassVar[int]
322
- variable_names: _containers.RepeatedScalarFieldContainer[str]
323
- def __init__(self, variable_names: _Optional[_Iterable[str]] = ...) -> None: ...
324
-
325
- class WorkbookMutation(_message.Message):
326
- __slots__ = ("id", "add_tab", "add_or_update_panel", "remove_panels", "add_or_replace_variable", "delete_variables")
327
- ID_FIELD_NUMBER: _ClassVar[int]
328
- ADD_TAB_FIELD_NUMBER: _ClassVar[int]
329
- ADD_OR_UPDATE_PANEL_FIELD_NUMBER: _ClassVar[int]
330
- REMOVE_PANELS_FIELD_NUMBER: _ClassVar[int]
331
- ADD_OR_REPLACE_VARIABLE_FIELD_NUMBER: _ClassVar[int]
332
- DELETE_VARIABLES_FIELD_NUMBER: _ClassVar[int]
333
- id: str
334
- add_tab: AddTabMutation
335
- add_or_update_panel: AddOrUpdatePanelMutation
336
- remove_panels: RemovePanelsMutation
337
- add_or_replace_variable: AddOrReplaceVariableMutation
338
- delete_variables: DeleteVariablesMutation
339
- def __init__(self, id: _Optional[str] = ..., add_tab: _Optional[_Union[AddTabMutation, _Mapping]] = ..., add_or_update_panel: _Optional[_Union[AddOrUpdatePanelMutation, _Mapping]] = ..., remove_panels: _Optional[_Union[RemovePanelsMutation, _Mapping]] = ..., add_or_replace_variable: _Optional[_Union[AddOrReplaceVariableMutation, _Mapping]] = ..., delete_variables: _Optional[_Union[DeleteVariablesMutation, _Mapping]] = ...) -> None: ...
340
-
341
323
  class ToolAction(_message.Message):
342
324
  __slots__ = ("id", "tool_action_verb", "tool_target")
343
325
  ID_FIELD_NUMBER: _ClassVar[int]
@@ -65,6 +65,11 @@ class AIAgentServiceStub(object):
65
65
  request_serializer=nominal_dot_ai_dot_v1_dot_ai__agent__pb2.DeleteConversationRequest.SerializeToString,
66
66
  response_deserializer=nominal_dot_ai_dot_v1_dot_ai__agent__pb2.DeleteConversationResponse.FromString,
67
67
  _registered_method=True)
68
+ self.GetSnapshotRidByUserMessageId = channel.unary_unary(
69
+ '/nominal.ai.v1.AIAgentService/GetSnapshotRidByUserMessageId',
70
+ request_serializer=nominal_dot_ai_dot_v1_dot_ai__agent__pb2.GetSnapshotRidByUserMessageIdRequest.SerializeToString,
71
+ response_deserializer=nominal_dot_ai_dot_v1_dot_ai__agent__pb2.GetSnapshotRidByUserMessageIdResponse.FromString,
72
+ _registered_method=True)
68
73
 
69
74
 
70
75
  class AIAgentServiceServicer(object):
@@ -113,6 +118,13 @@ class AIAgentServiceServicer(object):
113
118
  context.set_details('Method not implemented!')
114
119
  raise NotImplementedError('Method not implemented!')
115
120
 
121
+ def GetSnapshotRidByUserMessageId(self, request, context):
122
+ """GetSnapshotRidByUserMessageId handles resolving the snapshot rid of the workbook at the time the message is sent
123
+ """
124
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
125
+ context.set_details('Method not implemented!')
126
+ raise NotImplementedError('Method not implemented!')
127
+
116
128
 
117
129
  def add_AIAgentServiceServicer_to_server(servicer, server):
118
130
  rpc_method_handlers = {
@@ -146,6 +158,11 @@ def add_AIAgentServiceServicer_to_server(servicer, server):
146
158
  request_deserializer=nominal_dot_ai_dot_v1_dot_ai__agent__pb2.DeleteConversationRequest.FromString,
147
159
  response_serializer=nominal_dot_ai_dot_v1_dot_ai__agent__pb2.DeleteConversationResponse.SerializeToString,
148
160
  ),
161
+ 'GetSnapshotRidByUserMessageId': grpc.unary_unary_rpc_method_handler(
162
+ servicer.GetSnapshotRidByUserMessageId,
163
+ request_deserializer=nominal_dot_ai_dot_v1_dot_ai__agent__pb2.GetSnapshotRidByUserMessageIdRequest.FromString,
164
+ response_serializer=nominal_dot_ai_dot_v1_dot_ai__agent__pb2.GetSnapshotRidByUserMessageIdResponse.SerializeToString,
165
+ ),
149
166
  }
150
167
  generic_handler = grpc.method_handlers_generic_handler(
151
168
  'nominal.ai.v1.AIAgentService', rpc_method_handlers)
@@ -319,3 +336,30 @@ class AIAgentService(object):
319
336
  timeout,
320
337
  metadata,
321
338
  _registered_method=True)
339
+
340
+ @staticmethod
341
+ def GetSnapshotRidByUserMessageId(request,
342
+ target,
343
+ options=(),
344
+ channel_credentials=None,
345
+ call_credentials=None,
346
+ insecure=False,
347
+ compression=None,
348
+ wait_for_ready=None,
349
+ timeout=None,
350
+ metadata=None):
351
+ return grpc.experimental.unary_unary(
352
+ request,
353
+ target,
354
+ '/nominal.ai.v1.AIAgentService/GetSnapshotRidByUserMessageId',
355
+ nominal_dot_ai_dot_v1_dot_ai__agent__pb2.GetSnapshotRidByUserMessageIdRequest.SerializeToString,
356
+ nominal_dot_ai_dot_v1_dot_ai__agent__pb2.GetSnapshotRidByUserMessageIdResponse.FromString,
357
+ options,
358
+ channel_credentials,
359
+ insecure,
360
+ call_credentials,
361
+ compression,
362
+ wait_for_ready,
363
+ timeout,
364
+ metadata,
365
+ _registered_method=True)
@@ -0,0 +1,53 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: nominal/ai/v1/model_provider_health.proto
5
+ # Protobuf Python Version: 6.31.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 31,
16
+ 1,
17
+ '',
18
+ 'nominal/ai/v1/model_provider_health.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
26
+
27
+
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)nominal/ai/v1/model_provider_health.proto\x12\rnominal.ai.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x1a\n\x18GetProviderStatusRequest\"\x84\x02\n\x19GetProviderStatusResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x32\n\x0blast_status\x18\x02 \x01(\x0b\x32\x1d.nominal.ai.v1.ProviderStatus\x12J\n\x1f\x61ggregated_status_over_last_30m\x18\x03 \x01(\x0b\x32\x1d.nominal.ai.v1.ProviderStatusB\x02\x18\x01\x12\x38\n\x11\x61ggregated_status\x18\x04 \x01(\x0b\x32\x1d.nominal.ai.v1.ProviderStatus\"r\n\x0eProviderStatus\x12)\n\x07healthy\x18\x01 \x01(\x0b\x32\x16.nominal.ai.v1.HealthyH\x00\x12+\n\x08\x64\x65graded\x18\x02 \x01(\x0b\x32\x17.nominal.ai.v1.DegradedH\x00\x42\x08\n\x06status\"\t\n\x07Healthy\"<\n\x08\x44\x65graded\x12\x30\n\x06reason\x18\x01 \x01(\x0e\x32 .nominal.ai.v1.DegradationReason\"H\n\x0fProviderMetrics\x12\x1e\n\x16time_to_first_token_ms\x18\x01 \x01(\x05\x12\x15\n\rtotal_time_ms\x18\x02 \x01(\x05*\xaf\x01\n\x11\x44\x65gradationReason\x12\"\n\x1e\x44\x45GRADATION_REASON_UNSPECIFIED\x10\x00\x12#\n\x1f\x44\x45GRADATION_REASON_HIGH_LATENCY\x10\x01\x12\x1f\n\x1b\x44\x45GRADATION_REASON_FAILURES\x10\x02\x12\x30\n,DEGRADATION_REASON_HIGH_LATENCY_AND_FAILURES\x10\x03\x32\x84\x01\n\x1aModelProviderHealthService\x12\x66\n\x11GetProviderStatus\x12\'.nominal.ai.v1.GetProviderStatusRequest\x1a(.nominal.ai.v1.GetProviderStatusResponseb\x06proto3')
29
+
30
+ _globals = globals()
31
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'nominal.ai.v1.model_provider_health_pb2', _globals)
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ DESCRIPTOR._loaded_options = None
35
+ _globals['_GETPROVIDERSTATUSRESPONSE'].fields_by_name['aggregated_status_over_last_30m']._loaded_options = None
36
+ _globals['_GETPROVIDERSTATUSRESPONSE'].fields_by_name['aggregated_status_over_last_30m']._serialized_options = b'\030\001'
37
+ _globals['_DEGRADATIONREASON']._serialized_start=648
38
+ _globals['_DEGRADATIONREASON']._serialized_end=823
39
+ _globals['_GETPROVIDERSTATUSREQUEST']._serialized_start=93
40
+ _globals['_GETPROVIDERSTATUSREQUEST']._serialized_end=119
41
+ _globals['_GETPROVIDERSTATUSRESPONSE']._serialized_start=122
42
+ _globals['_GETPROVIDERSTATUSRESPONSE']._serialized_end=382
43
+ _globals['_PROVIDERSTATUS']._serialized_start=384
44
+ _globals['_PROVIDERSTATUS']._serialized_end=498
45
+ _globals['_HEALTHY']._serialized_start=500
46
+ _globals['_HEALTHY']._serialized_end=509
47
+ _globals['_DEGRADED']._serialized_start=511
48
+ _globals['_DEGRADED']._serialized_end=571
49
+ _globals['_PROVIDERMETRICS']._serialized_start=573
50
+ _globals['_PROVIDERMETRICS']._serialized_end=645
51
+ _globals['_MODELPROVIDERHEALTHSERVICE']._serialized_start=826
52
+ _globals['_MODELPROVIDERHEALTHSERVICE']._serialized_end=958
53
+ # @@protoc_insertion_point(module_scope)
@@ -25,14 +25,16 @@ class GetProviderStatusRequest(_message.Message):
25
25
  def __init__(self) -> None: ...
26
26
 
27
27
  class GetProviderStatusResponse(_message.Message):
28
- __slots__ = ("timestamp", "last_status", "aggregated_status_over_last_30m")
28
+ __slots__ = ("timestamp", "last_status", "aggregated_status_over_last_30m", "aggregated_status")
29
29
  TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
30
30
  LAST_STATUS_FIELD_NUMBER: _ClassVar[int]
31
31
  AGGREGATED_STATUS_OVER_LAST_30M_FIELD_NUMBER: _ClassVar[int]
32
+ AGGREGATED_STATUS_FIELD_NUMBER: _ClassVar[int]
32
33
  timestamp: _timestamp_pb2.Timestamp
33
34
  last_status: ProviderStatus
34
35
  aggregated_status_over_last_30m: ProviderStatus
35
- def __init__(self, timestamp: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., last_status: _Optional[_Union[ProviderStatus, _Mapping]] = ..., aggregated_status_over_last_30m: _Optional[_Union[ProviderStatus, _Mapping]] = ...) -> None: ...
36
+ aggregated_status: ProviderStatus
37
+ def __init__(self, timestamp: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., last_status: _Optional[_Union[ProviderStatus, _Mapping]] = ..., aggregated_status_over_last_30m: _Optional[_Union[ProviderStatus, _Mapping]] = ..., aggregated_status: _Optional[_Union[ProviderStatus, _Mapping]] = ...) -> None: ...
36
38
 
37
39
  class ProviderStatus(_message.Message):
38
40
  __slots__ = ("healthy", "degraded")
@@ -27,7 +27,7 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
27
27
  from nominal.gen.v1 import error_pb2 as nominal_dot_gen_dot_v1_dot_error__pb2
28
28
 
29
29
 
30
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2nominal/connect/download/v1/connect_download.proto\x12\x1bnominal.connect.download.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1anominal/gen/v1/error.proto\"M\n\x1aGetLatestConnectUriRequest\x12/\n\x08platform\x18\x01 \x01(\tB\x1d\xbaH\x1ar\x18R\x05macosR\x07windowsR\x06ubuntu\"*\n\x1bGetLatestConnectUriResponse\x12\x0b\n\x03uri\x18\x01 \x01(\t*\xe4\x01\n\x1b\x43onnectDownloadServiceError\x12.\n*CONNECT_DOWNLOAD_SERVICE_ERROR_UNSPECIFIED\x10\x00\x12\x94\x01\n4CONNECT_DOWNLOAD_SERVICE_ERROR_CONNECT_NOT_AVAILABLE\x10\x01\x1aZ\xb2\xb2\x1aV\n\tNOT_FOUND\x12IConnect not available for download on this stack. Please contact support.2\xd0\x01\n\x16\x43onnectDownloadService\x12\xb5\x01\n\x13GetLatestConnectUri\x12\x37.nominal.connect.download.v1.GetLatestConnectUriRequest\x1a\x38.nominal.connect.download.v1.GetLatestConnectUriResponse\"+\x82\xd3\xe4\x93\x02%\x12#/connect/v1/download/{platform}/uriB\x1f\n\x1bio.nominal.connect.downloadP\x01\x62\x06proto3')
30
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2nominal/connect/download/v1/connect_download.proto\x12\x1bnominal.connect.download.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1anominal/gen/v1/error.proto\"M\n\x1aGetLatestConnectUriRequest\x12/\n\x08platform\x18\x01 \x01(\tB\x1d\xbaH\x1ar\x18R\x05macosR\x07windowsR\x06ubuntu\"J\n\x17GetLatestVersionRequest\x12/\n\x08platform\x18\x01 \x01(\tB\x1d\xbaH\x1ar\x18R\x05macosR\x07windowsR\x06ubuntu\"*\n\x1bGetLatestConnectUriResponse\x12\x0b\n\x03uri\x18\x01 \x01(\t\"<\n\x18GetLatestVersionResponse\x12\x14\n\x07version\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_version*\xe4\x01\n\x1b\x43onnectDownloadServiceError\x12.\n*CONNECT_DOWNLOAD_SERVICE_ERROR_UNSPECIFIED\x10\x00\x12\x94\x01\n4CONNECT_DOWNLOAD_SERVICE_ERROR_CONNECT_NOT_AVAILABLE\x10\x01\x1aZ\xb2\xb2\x1aV\n\tNOT_FOUND\x12IConnect not available for download on this stack. Please contact support.2\x83\x03\n\x16\x43onnectDownloadService\x12\xb5\x01\n\x13GetLatestConnectUri\x12\x37.nominal.connect.download.v1.GetLatestConnectUriRequest\x1a\x38.nominal.connect.download.v1.GetLatestConnectUriResponse\"+\x82\xd3\xe4\x93\x02%\x12#/connect/v1/download/{platform}/uri\x12\xb0\x01\n\x10GetLatestVersion\x12\x34.nominal.connect.download.v1.GetLatestVersionRequest\x1a\x35.nominal.connect.download.v1.GetLatestVersionResponse\"/\x82\xd3\xe4\x93\x02)\x12\'/connect/v1/download/{platform}/versionB\x1f\n\x1bio.nominal.connect.downloadP\x01\x62\x06proto3')
31
31
 
32
32
  _globals = globals()
33
33
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -39,14 +39,22 @@ if not _descriptor._USE_C_DESCRIPTORS:
39
39
  _globals['_CONNECTDOWNLOADSERVICEERROR'].values_by_name["CONNECT_DOWNLOAD_SERVICE_ERROR_CONNECT_NOT_AVAILABLE"]._serialized_options = b'\262\262\032V\n\tNOT_FOUND\022IConnect not available for download on this stack. Please contact support.'
40
40
  _globals['_GETLATESTCONNECTURIREQUEST'].fields_by_name['platform']._loaded_options = None
41
41
  _globals['_GETLATESTCONNECTURIREQUEST'].fields_by_name['platform']._serialized_options = b'\272H\032r\030R\005macosR\007windowsR\006ubuntu'
42
+ _globals['_GETLATESTVERSIONREQUEST'].fields_by_name['platform']._loaded_options = None
43
+ _globals['_GETLATESTVERSIONREQUEST'].fields_by_name['platform']._serialized_options = b'\272H\032r\030R\005macosR\007windowsR\006ubuntu'
42
44
  _globals['_CONNECTDOWNLOADSERVICE'].methods_by_name['GetLatestConnectUri']._loaded_options = None
43
45
  _globals['_CONNECTDOWNLOADSERVICE'].methods_by_name['GetLatestConnectUri']._serialized_options = b'\202\323\344\223\002%\022#/connect/v1/download/{platform}/uri'
44
- _globals['_CONNECTDOWNLOADSERVICEERROR']._serialized_start=294
45
- _globals['_CONNECTDOWNLOADSERVICEERROR']._serialized_end=522
46
+ _globals['_CONNECTDOWNLOADSERVICE'].methods_by_name['GetLatestVersion']._loaded_options = None
47
+ _globals['_CONNECTDOWNLOADSERVICE'].methods_by_name['GetLatestVersion']._serialized_options = b'\202\323\344\223\002)\022\'/connect/v1/download/{platform}/version'
48
+ _globals['_CONNECTDOWNLOADSERVICEERROR']._serialized_start=432
49
+ _globals['_CONNECTDOWNLOADSERVICEERROR']._serialized_end=660
46
50
  _globals['_GETLATESTCONNECTURIREQUEST']._serialized_start=170
47
51
  _globals['_GETLATESTCONNECTURIREQUEST']._serialized_end=247
48
- _globals['_GETLATESTCONNECTURIRESPONSE']._serialized_start=249
49
- _globals['_GETLATESTCONNECTURIRESPONSE']._serialized_end=291
50
- _globals['_CONNECTDOWNLOADSERVICE']._serialized_start=525
51
- _globals['_CONNECTDOWNLOADSERVICE']._serialized_end=733
52
+ _globals['_GETLATESTVERSIONREQUEST']._serialized_start=249
53
+ _globals['_GETLATESTVERSIONREQUEST']._serialized_end=323
54
+ _globals['_GETLATESTCONNECTURIRESPONSE']._serialized_start=325
55
+ _globals['_GETLATESTCONNECTURIRESPONSE']._serialized_end=367
56
+ _globals['_GETLATESTVERSIONRESPONSE']._serialized_start=369
57
+ _globals['_GETLATESTVERSIONRESPONSE']._serialized_end=429
58
+ _globals['_CONNECTDOWNLOADSERVICE']._serialized_start=663
59
+ _globals['_CONNECTDOWNLOADSERVICE']._serialized_end=1050
52
60
  # @@protoc_insertion_point(module_scope)
@@ -21,8 +21,20 @@ class GetLatestConnectUriRequest(_message.Message):
21
21
  platform: str
22
22
  def __init__(self, platform: _Optional[str] = ...) -> None: ...
23
23
 
24
+ class GetLatestVersionRequest(_message.Message):
25
+ __slots__ = ("platform",)
26
+ PLATFORM_FIELD_NUMBER: _ClassVar[int]
27
+ platform: str
28
+ def __init__(self, platform: _Optional[str] = ...) -> None: ...
29
+
24
30
  class GetLatestConnectUriResponse(_message.Message):
25
31
  __slots__ = ("uri",)
26
32
  URI_FIELD_NUMBER: _ClassVar[int]
27
33
  uri: str
28
34
  def __init__(self, uri: _Optional[str] = ...) -> None: ...
35
+
36
+ class GetLatestVersionResponse(_message.Message):
37
+ __slots__ = ("version",)
38
+ VERSION_FIELD_NUMBER: _ClassVar[int]
39
+ version: str
40
+ def __init__(self, version: _Optional[str] = ...) -> None: ...
@@ -40,6 +40,11 @@ class ConnectDownloadServiceStub(object):
40
40
  request_serializer=nominal_dot_connect_dot_download_dot_v1_dot_connect__download__pb2.GetLatestConnectUriRequest.SerializeToString,
41
41
  response_deserializer=nominal_dot_connect_dot_download_dot_v1_dot_connect__download__pb2.GetLatestConnectUriResponse.FromString,
42
42
  _registered_method=True)
43
+ self.GetLatestVersion = channel.unary_unary(
44
+ '/nominal.connect.download.v1.ConnectDownloadService/GetLatestVersion',
45
+ request_serializer=nominal_dot_connect_dot_download_dot_v1_dot_connect__download__pb2.GetLatestVersionRequest.SerializeToString,
46
+ response_deserializer=nominal_dot_connect_dot_download_dot_v1_dot_connect__download__pb2.GetLatestVersionResponse.FromString,
47
+ _registered_method=True)
43
48
 
44
49
 
45
50
  class ConnectDownloadServiceServicer(object):
@@ -53,6 +58,13 @@ class ConnectDownloadServiceServicer(object):
53
58
  context.set_details('Method not implemented!')
54
59
  raise NotImplementedError('Method not implemented!')
55
60
 
61
+ def GetLatestVersion(self, request, context):
62
+ """Get the latest version string of Connect for a given platform
63
+ """
64
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
65
+ context.set_details('Method not implemented!')
66
+ raise NotImplementedError('Method not implemented!')
67
+
56
68
 
57
69
  def add_ConnectDownloadServiceServicer_to_server(servicer, server):
58
70
  rpc_method_handlers = {
@@ -61,6 +73,11 @@ def add_ConnectDownloadServiceServicer_to_server(servicer, server):
61
73
  request_deserializer=nominal_dot_connect_dot_download_dot_v1_dot_connect__download__pb2.GetLatestConnectUriRequest.FromString,
62
74
  response_serializer=nominal_dot_connect_dot_download_dot_v1_dot_connect__download__pb2.GetLatestConnectUriResponse.SerializeToString,
63
75
  ),
76
+ 'GetLatestVersion': grpc.unary_unary_rpc_method_handler(
77
+ servicer.GetLatestVersion,
78
+ request_deserializer=nominal_dot_connect_dot_download_dot_v1_dot_connect__download__pb2.GetLatestVersionRequest.FromString,
79
+ response_serializer=nominal_dot_connect_dot_download_dot_v1_dot_connect__download__pb2.GetLatestVersionResponse.SerializeToString,
80
+ ),
64
81
  }
65
82
  generic_handler = grpc.method_handlers_generic_handler(
66
83
  'nominal.connect.download.v1.ConnectDownloadService', rpc_method_handlers)
@@ -99,3 +116,30 @@ class ConnectDownloadService(object):
99
116
  timeout,
100
117
  metadata,
101
118
  _registered_method=True)
119
+
120
+ @staticmethod
121
+ def GetLatestVersion(request,
122
+ target,
123
+ options=(),
124
+ channel_credentials=None,
125
+ call_credentials=None,
126
+ insecure=False,
127
+ compression=None,
128
+ wait_for_ready=None,
129
+ timeout=None,
130
+ metadata=None):
131
+ return grpc.experimental.unary_unary(
132
+ request,
133
+ target,
134
+ '/nominal.connect.download.v1.ConnectDownloadService/GetLatestVersion',
135
+ nominal_dot_connect_dot_download_dot_v1_dot_connect__download__pb2.GetLatestVersionRequest.SerializeToString,
136
+ nominal_dot_connect_dot_download_dot_v1_dot_connect__download__pb2.GetLatestVersionResponse.FromString,
137
+ options,
138
+ channel_credentials,
139
+ insecure,
140
+ call_credentials,
141
+ compression,
142
+ wait_for_ready,
143
+ timeout,
144
+ metadata,
145
+ _registered_method=True)